> ## Documentation Index
> Fetch the complete documentation index at: https://nevermined.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Resolve a user_code to its verification-page details

> What the signed-in human sees on the verification page before approving: the connector name, the target agent, the consent type, and any bound resource/scope. Requires the human's Nevermined API key (unauthenticated → BCK.OAUTH.0007) — it is the browser verification-page surface, not the polling device.



## OpenAPI

````yaml /api-reference/oauth-openapi.json post /oauth/device/details
openapi: 3.0.0
info:
  title: Nevermined Authentication API
  description: >-
    The OAuth 2.1 + RFC 8628 device-flow ceremony and standards-based discovery
    endpoints an agent or connector uses to obtain and manage a Nevermined
    credential. These endpoints are root-mounted (not under /api/v1).
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.sandbox.nevermined.app
    description: Sandbox
  - url: https://api.live.nevermined.app
    description: Live
security: []
tags:
  - name: Authentication - Ceremony
    x-group: Ceremony
    description: Authorization Code (PKCE) and RFC 8628 device grant.
  - name: Authentication - Connections
    x-group: Connections
    description: AgentBindings — the consent receipts a user manages.
  - name: Authentication - Discovery
    x-group: Discovery
    description: RFC 8414 / 9728 / JWKS metadata.
paths:
  /oauth/device/details:
    post:
      tags:
        - Authentication - Ceremony
      summary: Resolve a user_code to its verification-page details
      description: >-
        What the signed-in human sees on the verification page before approving:
        the connector name, the target agent, the consent type, and any bound
        resource/scope. Requires the human's Nevermined API key (unauthenticated
        → BCK.OAUTH.0007) — it is the browser verification-page surface, not the
        polling device.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCodeRequest'
      responses:
        '200':
          description: Verification details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceVerificationDetails'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    UserCodeRequest:
      type: object
      required:
        - user_code
      properties:
        user_code:
          type: string
          example: BCDF-GHJK
    DeviceVerificationDetails:
      type: object
      properties:
        connectorName:
          type: string
          example: LangSmith Fleet
        agentId:
          type: string
          nullable: true
          example: did:nv:agent-123
        agentName:
          type: string
          nullable: true
          example: My Weather Agent
        consentType:
          type: string
          enum:
            - credits_purchase
            - account_access
          example: credits_purchase
        resource:
          type: string
          nullable: true
          example: https://api.nevermined.app
        scope:
          type: string
          nullable: true
          example: openid
    ErrorEnvelope:
      type: object
      properties:
        code:
          type: string
          example: BCK.OAUTH.0016
        message:
          type: string
          example: Unknown OAuth client
        category:
          type: string
          enum:
            - validation
            - auth
            - business
            - integration
            - internal
          example: auth
        hint:
          type: string
          nullable: true
        retryable:
          type: boolean
          nullable: true
          description: When present, whether retrying the same request may succeed.
        httpStatus:
          type: integer
          example: 400
  responses:
    Error:
      description: Typed error envelope
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Nevermined API key
      description: >-
        A Nevermined API key: `Authorization: Bearer <sandbox:… | live:…>`.
        Environment-prefixed, not a bare JWT — send the whole string.

````

## Related topics

- [Device Flow (RFC 8628)](/docs/integrate/authentication/device-flow.md)
- [Resolve a connect client_id to its display name + eligibility](/docs/api-reference/authentication--ceremony/resolve-a-connect-client_id-to-its-display-name-+-eligibility.md)
- [FAQ](/docs/products/payments/faq.md)
- [API Versioning](/docs/development-guide/api-versioning.md)
- [API error codes](/docs/development-guide/api-errors/codes.md)
