Gencove user API

The user API from Gencove — 12 operation(s) for user.

OpenAPI Specification

gencove-user-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Gencove Back array user API
  version: v2
  contact:
    email: support@gencove.com
  license:
    name: Proprietary
  description: API for Gencove REST service. Visit <a href='https://enterprise.gencove.com/'>enterprise.gencove.com</a> and <a href='https://docs.gencove.com/'>docs.gencove.com</a> for more information. <br><hr><p>To work with Insomnia, you can generate a Gencove API key by <a target='_blank' href='https://web.gencove.com/account?filter=api-keys'>clicking here</a>. Once you have the API key and have imported the project in Insomnia as a <i>Request Collection</i>, enter the key in Insomnia under <i>Manage Environment</i>.</p><a href='https://insomnia.rest/run/?label=back_api2&uri=https%3A%2F%2Fv2-api-files-prod.s3.amazonaws.com%2Fpublic%2Finsomnia%2Finsomnia_gencove_prod.json' target='_blank'>Run in Insomnia</a><hr>
servers:
- url: https://api.gencove.com
tags:
- name: user
paths:
  /api/v2/user/:
    get:
      operationId: user_retrieve
      tags:
      - user
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    put:
      operationId: user_update
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    patch:
      operationId: user_partial_update
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
  /api/v2/user-activate/:
    post:
      operationId: user_activate_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Activation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Activation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Activation'
        required: true
      security:
      - JWT: []
      - API key: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activation'
          description: ''
  /api/v2/user-activate-resend/:
    post:
      operationId: user_activate_resend_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
        required: true
      security:
      - JWT: []
      - API key: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendEmailReset'
          description: ''
  /api/v2/user-api-keys/:
    get:
      operationId: user_api_keys_list
      description: Fetch all non-revoked keys
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - user
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAPIKeyList'
          description: ''
    post:
      operationId: user_api_keys_create
      description: Create new api key
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAPIKey'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateAPIKey'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateAPIKey'
        required: true
      security:
      - JWT: []
      - API key: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAPIKey'
          description: ''
  /api/v2/user-api-keys/{api_key_id}:
    patch:
      operationId: user_api_keys_partial_update
      description: Update (revoke) api key
      parameters:
      - in: path
        name: api_key_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAPIKey'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAPIKey'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAPIKey'
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIKey'
          description: ''
  /api/v2/user-change-email/:
    post:
      operationId: user_change_email_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetUsername'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SetUsername'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SetUsername'
        required: true
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetUsername'
          description: ''
  /api/v2/user-config/:
    get:
      operationId: user_config_retrieve
      description: 'Retrieve user config formated as `{key: value}` JSON object.'
      tags:
      - user
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          description: No response body
    patch:
      operationId: user_config_partial_update
      description: 'Update user config formated as `{key: value}` JSON object.'
      tags:
      - user
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          description: No response body
  /api/v2/user-password-reset/:
    post:
      operationId: user_password_reset_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
        required: true
      security:
      - JWT: []
      - API key: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendEmailReset'
          description: ''
  /api/v2/user-password-reset-confirm/:
    post:
      operationId: user_password_reset_confirm_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
        required: true
      security:
      - JWT: []
      - API key: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordResetConfirm'
          description: ''
  /api/v2/user-password-set/:
    post:
      operationId: user_password_set_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SetPassword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SetPassword'
        required: true
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetPassword'
          description: ''
  /api/v2/user-projects/{user_id}:
    get:
      operationId: user_projects_list
      description: Retrieve list of user projects.
      parameters:
      - in: query
        name: additional_permission
        schema:
          type: string
          enum:
          - basespace_biosamples_import
          - project_samples_add
        description: Additional permission
      - in: query
        name: hidden_status
        schema:
          type: string
          enum:
          - all
          - hidden
          - visible
        description: Filter projects by their hidden status
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: sort_by
        schema:
          type: string
          enum:
          - created
          - modified
          - name
          - pipeline_capabilities
          - sample_count
        description: Sort results
      - in: query
        name: sort_order
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Sort direction
      - in: query
        name: status
        schema:
          type: string
          enum:
          - all
          - completed
          - running
        description: Filter projects by sample statuses
      - in: path
        name: user_id
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user
      security:
      - JWT: []
      - API key: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProjectList'
          description: ''
  /api/v2/user-register/:
    post:
      operationId: user_register_create
      tags:
      - user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserCreate'
        required: true
      security:
      - JWT: []
      - API key: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCreate'
          description: ''
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        name:
          type: string
          maxLength: 254
        uploads_enabled:
          type: string
          readOnly: true
        explorer_enabled:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        is_support:
          type: boolean
          readOnly: true
          title: Support
          description: Designates whether this user should be treated as a support.
      required:
      - created
      - email
      - explorer_enabled
      - id
      - is_support
      - uploads_enabled
    PasswordResetConfirm:
      type: object
      properties:
        uid:
          type: string
        token:
          type: string
        new_password:
          type: string
      required:
      - new_password
      - token
      - uid
    Activation:
      type: object
      properties:
        uid:
          type: string
        token:
          type: string
      required:
      - token
      - uid
    SetUsername:
      type: object
      properties:
        current_password:
          type: string
        new_email:
          type: string
          format: email
          title: Email address
          maxLength: 254
      required:
      - current_password
      - new_email
    APIKey:
      type: object
      properties:
        revoked:
          type: boolean
          description: If the API key is revoked, clients cannot use it anymore. (This cannot be undone.)
        id:
          type: string
        name:
          type: string
          description: A free-form name for the API key. Need not be unique. 50 characters max.
          maxLength: 50
        prefix:
          type: string
          readOnly: true
        expiry_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          title: Expires
          description: Last day (UTC) to use the API key, once API key expires clients cannot use it anymore.
        has_expired:
          type: string
          readOnly: true
        ip_range:
          nullable: true
          description: List of trusted subnets in CIDR notation
      required:
      - expiry_date
      - has_expired
      - id
      - name
      - prefix
    PatchedUser:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        name:
          type: string
          maxLength: 254
        uploads_enabled:
          type: string
          readOnly: true
        explorer_enabled:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        is_support:
          type: boolean
          readOnly: true
          title: Support
          description: Designates whether this user should be treated as a support.
    UserCreate:
      type: object
      description: Adding name as an optional field during registration.
      properties:
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        id:
          type: string
          format: uuid
          readOnly: true
        password:
          type: string
          writeOnly: true
        name:
          type: string
          maxLength: 254
        invitation_token:
          type: string
          maxLength: 32
        organization_name:
          type: string
          maxLength: 254
      required:
      - email
      - id
      - password
    SetPassword:
      type: object
      properties:
        new_password:
          type: string
        current_password:
          type: string
      required:
      - current_password
      - new_password
    PatchedAPIKey:
      type: object
      properties:
        revoked:
          type: boolean
          description: If the API key is revoked, clients cannot use it anymore. (This cannot be undone.)
        id:
          type: string
        name:
          type: string
          description: A free-form name for the API key. Need not be unique. 50 characters max.
          maxLength: 50
        prefix:
          type: string
          readOnly: true
        expiry_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          title: Expires
          description: Last day (UTC) to use the API key, once API key expires clients cannot use it anymore.
        has_expired:
          type: string
          readOnly: true
        ip_range:
          nullable: true
          description: List of trusted subnets in CIDR notation
    PaginatedProjectList:
      type: object
      required:
      - results
      properties:
        meta:
          type: object
          properties:
            count:
              type: integer
            next:
              type: string
              format: uri
              nullable: true
            previous:
              type: string
              format: uri
              nullable: true
          required:
          - count
        results:
          type: array
          items:
            $ref: '#/components/schemas/Project'
    PaginatedAPIKeyList:
      type: object
      required:
      - results
      properties:
        meta:
          type: object
          properties:
            count:
              type: integer
            next:
              type: string
              format: uri
              nullable: true
            previous:
              type: string
              format: uri
              nullable: true
          required:
          - count
        results:
          type: array
          items:
            $ref: '#/components/schemas/APIKey'
    Project:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 254
        description:
          type: string
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          readOnly: true
          description: Sample's last non-internal status that was added.
        hidden:
          type: boolean
          readOnly: true
          description: Flag to hide the project.
        organization:
          type: string
          format: uuid
          readOnly: true
        organization_name:
          type: string
          readOnly: true
          description: Organization name
        sample_count:
          type: string
          readOnly: true
        hidden_sample_count:
          type: string
          readOnly: true
        pipeline_capabilities:
          type: string
          format: uuid
          description: Versioned pipeline capabilities
        project_modifications:
          description: Allows for pipeline modifications e.g. disabling QC
        roles:
          type: string
          readOnly: true
          description: Roles for the project in the organization.
        webhook_url:
          type: string
          readOnly: true
          description: 'Legacy: this field is not used anymore, it is present in the response for the sake of backwards compatility with clients.'
        is_shared:
          type: boolean
          description: Return whether the project is shared with other organizations
          readOnly: true
        locked:
          type: boolean
          readOnly: true
          description: Flag to set the project to locked mode.
      required:
      - created
      - hidden
      - hidden_sample_count
      - id
      - is_shared
      - locked
      - modified
      - name
      - organization
      - organization_name
      - pipeline_capabilities
      - roles
      - sample_count
      - webhook_url
    SendEmailReset:
      type: object
      properties:
        email:
          type: string
          format: email
      required:
      - email
    CreateAPIKey:
      type: object
      properties:
        expiry_date:
          type: string
          format: date
          nullable: true
          title: Expires
          description: Last day (UTC) to use the API key, once API key expires clients cannot use it anymore.
        id:
          type: string
          readOnly: true
        key:
          type: string
          readOnly: true
        name:
          type: string
          description: A free-form name for the API key. Need not be unique. 50 characters max.
          maxLength: 50
        prefix:
          type: string
          readOnly: true
        ip_range:
          nullable: true
          description: List of trusted subnets in CIDR notation
      required:
      - id
      - key
      - name
      - prefix
  securitySchemes:
    API key:
      type: apiKey
      description: 'Authorization header content formated as: `Api-Key <API-key>`

        You can obtain new API key through Gencove''s web UI or `user-api-key` endpoint'
      in: header
      name: Authorization
    JWT:
      type: apiKey
      description: 'Authorization header content formated as: `Bearer <json-web-token>`

        You can obtain access token using `jwt-create` endpoint.'
      in: header
      name: Authorization