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

# Get API keys

> Retrieve all API keys. This does **not** return the full API key, but only a portion (for security purposes). The development key will be returned in full, as it'll be set in devices and is thus not private. This API returns an empty array when not authenticating with JWT token authentication.



## OpenAPI

````yaml /.assets/openapi.yaml get /api/{projectId}/apikeys
openapi: 3.0.0
info:
  title: Edge Impulse API
  version: 1.0.0
servers:
  - url: https://studio.edgeimpulse.com/v1
security:
  - ApiKeyAuthentication: []
  - JWTAuthentication: []
  - JWTHttpHeaderAuthentication: []
  - OAuth2: []
paths:
  /api/{projectId}/apikeys:
    get:
      tags:
        - Projects
      summary: Get API keys
      description: >-
        Retrieve all API keys. This does **not** return the full API key, but
        only a portion (for security purposes). The development key will be
        returned in full, as it'll be set in devices and is thus not private.
        This API returns an empty array when not authenticating with JWT token
        authentication.
      operationId: listProjectApiKeys
      parameters:
        - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiKeysResponse'
components:
  parameters:
    ProjectIdParameter:
      name: projectId
      in: path
      required: true
      description: Project ID
      schema:
        type: integer
  schemas:
    ListApiKeysResponse:
      allOf:
        - $ref: '#/components/schemas/GenericApiResponse'
        - type: object
          required:
            - apiKeys
          properties:
            apiKeys:
              type: array
              description: List of API keys.
              items:
                $ref: '#/components/schemas/ProjectApiKey'
    GenericApiResponse:
      type: object
      required:
        - success
      properties:
        success:
          type: boolean
          description: Whether the operation succeeded
        error:
          type: string
          description: Optional error description (set if 'success' was false)
    ProjectApiKey:
      type: object
      required:
        - id
        - name
        - apiKey
        - isDevelopmentKey
        - created
        - role
      properties:
        id:
          type: integer
        apiKey:
          type: string
        isDevelopmentKey:
          type: boolean
        name:
          type: string
        created:
          type: string
          format: date-time
        role:
          type: string
          enum:
            - admin
            - readonly
            - ingestiononly
            - ingestion_deployment
            - wladmin
        createdByUser:
          $ref: '#/components/schemas/CreatedUpdatedByUser'
        lastUsed:
          description: When this API key was last used.
          type: object
          required:
            - date
          properties:
            date:
              type: string
              format: date-time
            country:
              type: string
              example: United States
              description: If available, the country from which the API key was last used.
            ipAddress:
              type: string
              description: >-
                If available, the IP address from which the API key was last
                used.
        expires:
          description: If the key has a ttl set, when the key will expire
          type: string
          format: date-time
        createdViaOAuthClientId:
          description: >-
            OAuth client_id that created this API key through an OAuth-scoped
            key endpoint.
          type: string
        createdForExtension:
          $ref: '#/components/schemas/ApiKeyExtension'
          description: Extension info for API keys created for a project extension.
    CreatedUpdatedByUser:
      type: object
      required:
        - id
        - name
        - username
      properties:
        id:
          type: integer
        name:
          type: string
        username:
          type: string
        photo:
          type: string
    ApiKeyExtension:
      type: object
      required:
        - projectExtensionId
        - name
      properties:
        projectExtensionId:
          type: integer
        name:
          type: string
  securitySchemes:
    ApiKeyAuthentication:
      type: apiKey
      in: header
      name: x-api-key
    JWTAuthentication:
      type: apiKey
      in: cookie
      name: jwt
    JWTHttpHeaderAuthentication:
      type: apiKey
      in: header
      name: x-jwt-token
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /v1/oauth/authorize
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        implicit:
          authorizationUrl: /v1/oauth/authorize
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        password:
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        clientCredentials:
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information

````