Grin · Authentication Profile

Grin Authentication

Authentication

Grin secures its APIs with openIdConnect and oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, clientCredentials, refreshToken, deviceCode, and tokenExchange flow(s).

CompanyInfluencer MarketingCreator EconomyCreator ManagementAffiliate MarketingMarketingSocial-MediaE-Commerce
Methods: openIdConnect, oauth2 Schemes: 2 OAuth flows: authorizationCode, clientCredentials, refreshToken, deviceCode, tokenExchange API key in:

Security Schemes

GrinOIDC openIdConnect
GrinMCPBearer oauth2
scheme: Bearer token in the Authorization header

Source

Authentication Profile

grin-authentication.yml Raw ↑
generated: '2026-08-13'
method: probed
source: https://auth.grin.co/.well-known/openid-configuration
docs: https://grin.co/security/
note: >-
  No OpenAPI is publicly reachable for GRIN (see lifecycle/grin-lifecycle.yml —
  the Stoplight documentation project GRIN links from its own docs host returns
  404), so this profile is NOT derived from securitySchemes. It is probed
  directly from the two anonymous discovery documents GRIN's own hosts serve:
  the OIDC/RFC 8414 metadata on auth.grin.co (an Auth0 tenant on GRIN's domain)
  and the RFC 9728 protected-resource metadata on mcp.grin.co. Those describe
  the auth model in front of the GRIN app and the Gia MCP server. The
  authentication model for the legacy read-only REST API described on the
  Stoplight workspace home ("uses standard HTTP response codes and
  authentication") is NOT publicly documented and is deliberately not guessed
  here.

summary:
  types:
  - openIdConnect
  - oauth2
  api_key_in: []
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  - refreshToken
  - deviceCode
  - tokenExchange
  pkce: true
  dynamic_client_registration: true

schemes:
- name: GrinOIDC
  type: openIdConnect
  openIdConnectUrl: https://auth.grin.co/.well-known/openid-configuration
  issuer: https://auth.grin.co/
  provider: Auth0 (GRIN-operated tenant on auth.grin.co)
  authorizationUrl: https://auth.grin.co/authorize
  tokenUrl: https://auth.grin.co/oauth/token
  userinfoUrl: https://auth.grin.co/userinfo
  jwksUri: https://auth.grin.co/.well-known/jwks.json
  registrationEndpoint: https://auth.grin.co/oidc/register
  deviceAuthorizationEndpoint: https://auth.grin.co/oauth/device/code
  code_challenge_methods:
  - S256
  - plain
  response_types:
  - code
  - token
  - id_token
  - code token
  - code id_token
  - token id_token
  - code token id_token
  grant_types:
  - client_credentials
  - authorization_code
  - refresh_token
  - password
  - implicit
  - urn:ietf:params:oauth:grant-type:device_code
  - urn:ietf:params:oauth:grant-type:token-exchange
  - urn:ietf:params:oauth:grant-type:jwt-bearer
  sources:
  - well-known/grin-openid-configuration.json
  - well-known/grin-oauth-authorization-server.json

- name: GrinMCPBearer
  type: oauth2
  applies_to: https://mcp.grin.co/mcp
  scheme: Bearer token in the Authorization header
  bearer_methods_supported:
  - header
  authorization_servers:
  - https://auth.grin.co/
  scopes:
  - openid
  - email
  - profile
  challenge: >-
    WWW-Authenticate: Bearer resource_metadata="https://mcp.grin.co/.well-known/oauth-protected-resource"
  standard: RFC 9728 OAuth 2.0 Protected Resource Metadata
  sources:
  - well-known/grin-oauth-protected-resource.json

app_login:
  url: https://app.grin.co/login
  flow: >-
    app.grin.co 302s to https://auth.grin.co/authorize with response_type=code,
    scope="openid profile email" and prompt=select_account — an authorization
    code flow against the same tenant that fronts the MCP server.
  observed_status: 302

x-evidence:
- url: https://auth.grin.co/.well-known/openid-configuration
  http_status: 200
  fetched: '2026-08-13'
- url: https://auth.grin.co/.well-known/oauth-authorization-server
  http_status: 200
  fetched: '2026-08-13'
- url: https://mcp.grin.co/.well-known/oauth-protected-resource
  http_status: 200
  fetched: '2026-08-13'
- url: https://app.grin.co/
  http_status: 302
  fetched: '2026-08-13'

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/grin-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.