Paradox Users API

Manage users including creating, retrieving, updating, deleting, deactivating, and reactivating

OpenAPI Specification

paradox-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Paradox Authentication Users API
  description: API for the Paradox conversational AI recruiting platform powered by Olivia. Provides endpoints for managing candidates, users, interview scheduling, locations, company data, reporting, and candidate attributes. Paradox automates candidate screening, interview scheduling, and hiring workflows through chat, SMS, and mobile-driven experiences.
  version: 1.0.0
  contact:
    name: Paradox Support
    url: https://www.paradox.ai/contact
    email: support@paradox.ai
  license:
    name: Proprietary
    url: https://www.paradox.ai/legal/service-terms
  termsOfService: https://www.paradox.ai/legal/service-terms
servers:
- url: https://api.paradox.ai/api/v1/public
  description: Production (US)
- url: https://api.eu1.paradox.ai/api/v1/public
  description: Production (EU)
- url: https://stgapi.paradox.ai/api/v1/public
  description: Staging (US)
- url: https://api.stg.eu1.paradox.ai/api/v1/public
  description: Staging (EU)
- url: https://testapi.paradox.ai/api/v1/public
  description: Test
- url: https://dev2api.paradox.ai/api/v1/public
  description: Development
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Users
  description: Manage users including creating, retrieving, updating, deleting, deactivating, and reactivating
paths:
  /users:
    get:
      operationId: getUsers
      summary: Paradox Get users
      description: Retrieve a paginated list of users in the Paradox platform.
      tags:
      - Users
      parameters:
      - name: limit
        in: query
        description: Maximum number of results to return
        schema:
          type: integer
      - name: page
        in: query
        description: Page number for pagination
        schema:
          type: integer
      - name: include_campus_permission
        in: query
        description: Include campus permission data in response
        schema:
          type: boolean
      - name: external_role_id
        in: query
        description: Filter by external role identifier
        schema:
          type: string
      - name: location_id
        in: query
        description: Filter by location identifier
        schema:
          type: string
      responses:
        '200':
          description: List of users returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  limit:
                    type: integer
                  count:
                    type: integer
                  page:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createUser
      summary: Paradox Create user
      description: Create a new user in the Paradox platform.
      tags:
      - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreate'
      responses:
        '200':
          description: User created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  user:
                    $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /users/{oid}:
    get:
      operationId: getUser
      summary: Paradox Get single user
      description: Retrieve details for a specific user by OID or external identifier.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/UserOid'
      responses:
        '200':
          description: User details returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  user:
                    $ref: '#/components/schemas/User'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateUser
      summary: Paradox Update user
      description: Update an existing user by OID.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/UserOid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdate'
      responses:
        '200':
          description: User updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  user:
                    $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteUser
      summary: Paradox Delete user
      description: Delete a user by OID.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/UserOid'
      responses:
        '200':
          description: User deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /users/{oid}/deactivate:
    post:
      operationId: deactivateUser
      summary: Paradox Deactivate user
      description: Deactivate a user account, preventing login and API access.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/UserOid'
      responses:
        '200':
          description: User deactivated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /users/{oid}/reactivate:
    post:
      operationId: reactivateUser
      summary: Paradox Reactivate user
      description: Reactivate a previously deactivated user account.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/UserOid'
      responses:
        '200':
          description: User reactivated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /users/roles:
    get:
      operationId: getUserRoles
      summary: Paradox Get user roles
      description: Retrieve the list of available user roles.
      tags:
      - Users
      responses:
        '200':
          description: User roles returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  roles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Role'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /users/employees/{employee_id}:
    get:
      operationId: getUserByEmployeeId
      summary: Paradox Get user by employee ID
      description: Look up a user by their employee ID.
      tags:
      - Users
      parameters:
      - name: employee_id
        in: path
        required: true
        description: Employee identifier
        schema:
          type: string
      responses:
        '200':
          description: User details returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  user:
                    $ref: '#/components/schemas/User'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateUserByEmployeeId
      summary: Paradox Update user by employee ID
      description: Update a user identified by their employee ID.
      tags:
      - Users
      parameters:
      - name: employee_id
        in: path
        required: true
        description: Employee identifier
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdate'
      responses:
        '200':
          description: User updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  user:
                    $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteUserByEmployeeId
      summary: Paradox Delete user by employee ID
      description: Delete a user identified by their employee ID.
      tags:
      - Users
      parameters:
      - name: employee_id
        in: path
        required: true
        description: Employee identifier
        schema:
          type: string
      responses:
        '200':
          description: User deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    UserOid:
      name: oid
      in: path
      required: true
      description: User OID or external identifier
      schema:
        type: string
  schemas:
    Role:
      type: object
      description: A user role definition
      properties:
        id:
          type: string
          description: Role identifier
        name:
          type: string
          description: Role name
        description:
          type: string
          description: Role description
    UserCreate:
      type: object
      description: Request body for creating a new user
      required:
      - name
      - email
      - phone_number
      properties:
        name:
          type: string
          description: Full name
        email:
          type: string
          format: email
          description: Email address
        phone_number:
          type: string
          description: Phone number
        role:
          type: string
          description: User role
        timezone:
          type: string
          description: User timezone
        language_preference:
          type: string
          description: Preferred language code
        location_ids:
          type: array
          items:
            type: string
          description: Associated location identifiers
        employee_id:
          type: string
          description: Employee identifier
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
    User:
      type: object
      description: A user in the Paradox platform
      properties:
        OID:
          type: string
          description: Unique user identifier
        name:
          type: string
          description: Full name
        email:
          type: string
          format: email
          description: Email address
        phone_number:
          type: string
          description: Phone number
        role_id:
          type: string
          description: Assigned role identifier
        timezone:
          type: string
          description: User timezone
        language_preference:
          type: string
          description: Preferred language code
        employee_id:
          type: string
          description: Employee identifier
        job_title:
          type: string
          description: Job title
        location_ids:
          type: array
          items:
            type: string
          description: Associated location identifiers
        campus_permissions:
          type: array
          items:
            type: object
          description: Campus-level permissions
        active:
          type: boolean
          description: Whether the user account is active
        created_at:
          type: string
          format: date-time
          description: Account creation timestamp
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
    UserUpdate:
      type: object
      description: Request body for updating an existing user
      properties:
        name:
          type: string
        email:
          type: string
          format: email
        phone_number:
          type: string
        role:
          type: string
        timezone:
          type: string
        language_preference:
          type: string
        employee_id:
          type: string
        job_title:
          type: string
  responses:
    Unauthorized:
      description: Authentication failed
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                const: false
              message:
                type: string
    BadRequest:
      description: Invalid request data
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                const: false
              message:
                type: string
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                const: false
              message:
                type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 client credentials authentication
      flows:
        clientCredentials:
          tokenUrl: /auth/token
          scopes: {}
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token obtained from the OAuth 2.0 token endpoint
externalDocs:
  description: Paradox API Documentation
  url: https://readme.paradox.ai/docs