MontyCloud · Authentication Profile

Montycloud Authentication

Authentication

MontyCloud declares 3 security scheme(s) across its OpenAPI definitions.

CloudCloud OperationsManaged Service ProvidersGovernanceComplianceCost ManagementArtificial IntelligenceAgentsMCPMulti-TenantInfrastructure
Methods: Schemes: 3 OAuth flows: API key in:

Security Schemes

x-api-key apiKey
· in: header ()
Authorization apiKey
· in: header ()
x-tenant-id apiKey
· in: header ()

Source

Authentication Profile

montycloud-authentication.yml Raw ↑
generated: '2026-08-26'
method: derived
source: >-
  pypi:day2@0.5.0 (day2/client/base.py, day2/auth/credentials.py) +
  https://montycloud.com/mcp-server-security-statement/ + https://montycloud.com/trust-center/
note: >-
  MontyCloud publishes no public OpenAPI and no public authentication reference page — the
  developer docs at developer.montycloud.com are a private GitHub Pages site that 302s to a GitHub
  organization login. This profile is derived from MontyCloud's own published Python SDK
  (`day2` 0.5.0 on PyPI) and corroborated by two first-party prose documents: the MCP Server
  Security Statement and the Trust Center.
summary: >-
  Paired-secret API authentication. Every DAY2 API request carries an API key in `x-api-key` and
  the API secret key in `Authorization`; tenant scope is selected per request with `x-tenant-id`.
  There is no OAuth 2.0 flow, no bearer token exchange, and no published scope vocabulary on the
  product API — authorization is DAY2 platform RBAC attached to the user the key was minted for.
schemes:
  - id: apiKeyHeader
    type: apiKey
    in: header
    name: x-api-key
    required: true
    description: API key issued to a user inside the DAY2 platform.
  - id: apiSecretHeader
    type: apiKey
    in: header
    name: Authorization
    required: true
    description: >-
      The API secret key, sent raw in the Authorization header. It is NOT an RFC 6750 bearer token
      and carries no scheme prefix — the SDK assigns the secret directly
      (headers["Authorization"] = credentials.secret_key).
  - id: tenantContext
    type: apiKey
    in: header
    name: x-tenant-id
    required: false
    description: >-
      Selects the tenant a request executes against. Set by Session.set_tenant() / the CLI tenant
      context. Omitting it uses the caller's default tenant; most resource paths also take the
      tenant id as a path parameter.
credential_sources:
  - inline constructor arguments (api_key, api_secret_key)
  - environment variables DAY2_API_KEY and DAY2_API_SECRET_KEY
  - profile config file ~/.day2/config, written by `day2 auth configure`
identity_provider:
  service: Amazon Cognito
  gateway: AWS API Gateway
  source: https://montycloud.com/mcp-server-security-statement/
  note: >-
    MontyCloud states the same API Gateway + Cognito framework fronts both the core API services
    and the CloudOps MCP Server, and that MCP access uses the same API key + secret key pair.
authorization:
  model: rbac
  scope_vocabulary: none-published
  detail: >-
    Permissions granted by an API key are those of the DAY2 user identity it was generated for,
    under a stated principle of least privilege. RBAC governs every platform feature and enforces
    tenant isolation; MontyCloud publishes no OAuth scope list, so scopes/ is intentionally absent
    from this repo rather than fabricated.
  source: https://montycloud.com/mcp-server-security-statement/
end_user_sso:
  supported: true
  protocols:
    - SAML 2.0
    - Azure Active Directory / Entra ID
  scope: DAY2 platform console sign-in (app.montycloud.com), not API credentials
  docs: https://support.montycloud.com/support/solutions/articles/62000206236-single-sign-on-in-day2-overview-
cloud_account_trust:
  mechanism: AWS cross-account IAM role with a unique per-customer external ID
  detail: >-
    MontyCloud accesses customer AWS accounts through a scoped cross-account IAM role limited to
    resource metadata (names, tag key/values) and CloudTrail log streams. The role is assumable
    only by MontyCloud's designated AWS account IDs. No MontyCloud employee holds direct customer
    account access. Temporary IAM access keys are held in application memory only and are never
    stored or logged.
  source: https://montycloud.com/trust-center/
  docs: https://support.montycloud.com/support/solutions/articles/62000213248-day2-aws-iam-permissions
transport:
  tls_required: true
  note: All data in transit encrypted with TLS; at rest with AES-256 (Trust Center).
failure_modes:
  - status: 401
    meaning: authentication failed (SDK raises AuthenticationError)
  - status: 403
    meaning: authenticated but not permitted (SDK also raises AuthenticationError)
mcp_authentication:
  endpoint: https://api.montycloud.com/mcp
  model: api-key-and-secret
  observed: anonymous tools/list POST returns HTTP 401 {"message":"Unauthorized"}
  probed: '2026-08-26'

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/montycloud-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.