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

# Create a Certificate for a Device



## OpenAPI

````yaml https://manage.nervescloud.com/api/openapi post /api/orgs/{org_name}/products/{product_name}/devices/{identifier}/certificates
openapi: 3.0.0
info:
  description: >
    The NervesCloud API gives users full access to their

    Orgs, Products, and corresponding Device fleets.


    The API can be used to integrate with your own systems, providing full
    access to your Product and Device data.


    The API is documented using the OpenAPI 3.0 specification.
  title: NervesCloud API
  version: 2.0.0
servers:
  - url: https://manage.nervescloud.com
    variables: {}
security:
  - bearer_auth: []
tags:
  - description: User authentication and API token creation
    name: Auth
  - description: Organization Certificate Authority management
    name: CA Certificates
  - description: >-
      Device management, including action requests eg. upgrade, reboot,
      reconnect
    name: Devices
  - description: Log lines Devices have sent over the logging extension
    name: Device Logs
  - description: >-
      Device management, including action requests eg. upgrade, reboot,
      reconnect
    name: Devices (short URL)
  - description: Device Certificate management
    name: Device Certificates
  - description: Identities a Device holds on networks NervesHub does not run
    name: Network Identities
  - description: Deployment Group and release management
    name: Deployment Groups
  - description: Firmware uploading and management
    name: Firmwares
  - description: Organization iroh endpoint id registration
    name: Iroh Endpoints
  - description: Organization management
    name: Organizations
  - description: Organization User membership management
    name: Organization Members
  - description: Product management
    name: Products
  - description: Organization Signing Key management
    name: Signing Keys
  - description: Product Support Script management
    name: Support Scripts
  - description: Platform healthcheck
    name: Platform Status
paths:
  /api/orgs/{org_name}/products/{product_name}/devices/{identifier}/certificates:
    post:
      tags:
        - Device Certificates
      summary: Create a Certificate for a Device
      operationId: NervesHubWeb.API.DeviceCertificateController.create
      parameters:
        - description: Organization Name
          example: example_org
          in: path
          name: org_name
          required: true
          schema:
            type: string
        - description: Product Name
          example: example_product
          in: path
          name: product_name
          required: true
          schema:
            type: string
        - description: Device Identifier
          example: example_device
          in: path
          name: identifier
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceCertificateCreateRequest'
        description: Device Certificate create request
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceCertificateShowResponse'
          description: Device Certificate show response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangesetErrorResponse'
          description: Unprocessable Entity
      callbacks: {}
      security:
        - bearer_auth: []
components:
  schemas:
    DeviceCertificateCreateRequest:
      description: POST body for creating a Certificate for a Device
      example:
        cert: '[Base64 encoded certificate]=='
      properties:
        cert:
          description: Base64 encoded certificate
          type: string
      required:
        - cert
      title: DeviceCertificateCreateRequest
      type: object
    DeviceCertificateShowResponse:
      description: Device Certificate show response
      example:
        data:
          not_after: '2052-12-15T21:00:00Z'
          not_before: '2022-12-15T20:00:00Z'
          serial: '123456789101112'
      properties:
        data:
          $ref: '#/components/schemas/DeviceCertificate'
      title: DeviceCertificateShowResponse
      type: object
    ErrorResponse:
      description: Error response
      example:
        errors:
          detail: Resource Not Found or Authorization Insufficient
      properties:
        errors:
          properties:
            detail:
              type: string
          type: object
      title: ErrorResponse
      type: object
    ChangesetErrorResponse:
      description: Validation error response
      example:
        errors:
          identifier:
            - can't be blank
      properties:
        errors:
          additionalProperties:
            items:
              type: string
            type: array
          type: object
      title: ChangesetErrorResponse
      type: object
    DeviceCertificate:
      example:
        not_after: '2052-12-15T21:00:00Z'
        not_before: '2022-12-15T20:00:00Z'
        serial: '123456789101112'
      properties:
        not_after:
          format: date-time
          type: string
        not_before:
          format: date-time
          type: string
        serial:
          type: string
      title: DeviceCertificate
      type: object
  securitySchemes:
    bearer_auth:
      scheme: bearer
      type: http

````