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

# Start a device login

> Start a device login, for a machine with no browser. Show the person verification_uri_complete and user_code, then poll POST /auth/token every interval seconds. No key needed. Does not use shortlist credits.



## OpenAPI

````yaml /openapi.json post /auth/device
openapi: 3.1.0
info:
  title: Revcenter API
  version: v1
  description: >-
    Projects, searches, scored candidates and shortlists. Generated from the
    agent API's registry.
servers:
  - url: https://api.revcenter.ai/v1
security:
  - bearer: []
tags:
  - name: Login
  - name: Account
  - name: Actions
  - name: Reference
  - name: Projects
  - name: Searches
  - name: Scoring
  - name: Shortlists
  - name: Candidates
  - name: Health
paths:
  /auth/device:
    post:
      tags:
        - Login
      summary: Start a device login
      description: >-
        Start a device login, for a machine with no browser. Show the person
        verification_uri_complete and user_code, then poll POST /auth/token
        every interval seconds. No key needed. Does not use shortlist credits.
      operationId: start_login
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                client_name:
                  type: string
                  description: Shown on the approval page, and the new key's default name.
            example:
              client_name: revcenter CLI on laptop
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/DeviceLogin'
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                data:
                  device_code: rvcd_kq3...
                  user_code: BCDF-GHJK
                  verification_uri: https://app.revcenter.ai/oauth/device
                  verification_uri_complete: https://app.revcenter.ai/oauth/device/BCDF-GHJK
                  expires_in: 600
                  interval: 5
                meta:
                  request_id: req_01JABCDEF
        '429':
          $ref: '#/components/responses/Error'
      security: []
components:
  schemas:
    DeviceLogin:
      type: object
      properties:
        device_code:
          type: string
          description: 'Secret: send it to POST /auth/token. Never show it.'
        user_code:
          type: string
          description: Show it; the user checks it matches the page.
        verification_uri:
          type: string
        verification_uri_complete:
          type: string
          description: Open this in the user's browser.
        expires_in:
          type: integer
        interval:
          type: integer
          description: Seconds between polls.
    Meta:
      type: object
      properties:
        request_id:
          type: string
        total:
          type: integer
          description: On lists that count everything that matched.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: 'Stable: every code is on the Errors page.'
            message:
              type: string
            details:
              type:
                - object
                - 'null'
              description: >-
                Structured specifics, when there are any (for example
                retry_after_seconds).
            request_id:
              type: string
        meta:
          $ref: '#/components/schemas/Meta'
      example:
        error:
          code: search_not_found
          message: No search with that id in this workspace.
          details: null
          request_id: req_01JABCDEF
        meta:
          request_id: req_01JABCDEF
  responses:
    Error:
      description: 'An error: one envelope everywhere. A 429 carries Retry-After.'
      headers:
        X-RateLimit-Limit:
          description: >-
            Requests allowed this minute (the tighter of the key's and the
            workspace's).
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests left this minute.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: When the minute resets, in Unix seconds.
          schema:
            type: integer
        Retry-After:
          description: Seconds to wait (on 429 and 503).
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: An API key from Settings → Usage → API (rvc_live_…).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.