Erply device API

The device API from Erply — 4 operation(s) for device.

Operations 6

GET /api/v1/device Look up devices
POST /api/v1/device Add a new device record
GET /api/v1/device-global Search for devices across all accessible tenants
DELETE /api/v1/device/{deviceId} Delete one device record
PATCH /api/v1/device/{deviceId} Update device record
GET /api/v1/device/{deviceId}/log Retrieve device record related logged values

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/erply-device-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

erply-device-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: "\n\n## Overview\n\n\n\nThis application offers an API for managing assignments and tasks.\n\n\n\nGraphQL endpoint for the same API is [also available](/graph)\n\n\n\n<details><summary>Authentication</summary>\n\n\n\n> \n\n> Authenticate using your Erply credentials and get a sessionKey. This sessionKey and your Erply clientCode must be provided in the HTTP headers of every request. You do not have to authenticate against this API - valid Erply sessionKey-s from other sources are also acceptable. To authenticate using this API, use the `POST /api/v1/auth` endpoint.\n\n>\n\n</details>\n\n"
  title: assignments Assortment Device API
  contact: {}
  version: 2.36.5
tags:
- name: device
paths:
  /api/v1/device:
    get:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      description: "Allows searching for devices matching specific criteria.\n\n> Param           | Default&nbsp; | Example&nbsp; | Description\n> ----------------|---------------|---------------|----\n> `id`            | -             | 11            | Filter by device ID-s\n> `registration`  | -             | 12            | Filter by registration number. Exact match\n> `serial`        | -             | 13            | Filter by serial number. Exact match\n> `brand`         | -             | Tesla         | Filter by brand. Exact match\n> `model`         | -             | Model S       | Filter by model. Exact match\n> `version`       | -             | 100 AWD       | Filter by version. Exact match\n> `year`          | -             | 2020          | Filter by year. Exact match\n> `color`         | -             | red           | Filter by device color. Exact match\n> `customerId`    | -             | 14            | Filter by customer ID-s\n> `customerName`  | -             | Tom           | Filter by customer name. Fuzzy search\n> `searchPhrase`  | -             | AWD           | Fuzzy search over fields `registration`, `serial`, `brand`, `model`, `version`, `year` and owner name.\n> `limitedAccess` | -             | true          | If devices with access restrictions should be returned\n> `callerAccess`  | -             | true          | If the query should return devices that are accessible to the user or those that are not accessible. Returns both by default\n> `withTotalCount` | false         | true          | If total count of matched records should be returned in response header `x-total-count` \n> `pageSize`      | 20            | 100           | Allows specifying how many records per page should be returned\n> `pageNr`        | 1             | 2             | Allows specifying which page should be returned for creating paginated views over the data.\n> `sort`          | id            | -id           | Allows specifying in which order the rows should be returned. Supported values are: `id`, `relevance`, `custFirstname`, `custName`, `dateSoldAt`, `registration`, `serial`, `brand`, `model`, `version`, `year`, `createdAt`, `updatedAt`. It is possible to reverse the order by adding a `-` prefix to the sorting keyword.\n>"
      tags:
      - device
      summary: Look up devices
      parameters:
      - description: Device ids
        name: id
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - description: Registration number
        name: registration
        in: query
        schema:
          type: string
      - description: Serial number
        name: serial
        in: query
        schema:
          type: string
      - description: Device brand
        name: brand
        in: query
        schema:
          type: string
      - description: Device model
        name: model
        in: query
        schema:
          type: string
      - description: Device version
        name: version
        in: query
        schema:
          type: string
      - description: Device year
        name: year
        in: query
        schema:
          type: string
      - description: Device color
        name: color
        in: query
        schema:
          type: string
      - description: Customer ids
        name: customerId
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - description: Customer name
        name: customerName
        in: query
        schema:
          type: string
      - description: Fulltext search phrase
        name: searchPhrase
        in: query
        schema:
          type: string
      - description: If hidden or unhidden devices should be returned. If undefined, all are returned
        name: hidden
        in: query
        schema:
          type: boolean
      - description: If device has access restrictions applied
        name: limitedAccess
        in: query
        schema:
          type: boolean
      - description: If caller has access to the device content
        name: callerAccess
        in: query
        schema:
          type: boolean
      - description: If total matching record count should be return in response header
        name: withTotalCount
        in: query
        schema:
          type: boolean
      - description: Result page size
        name: pageSize
        in: query
        schema:
          type: integer
      - description: Result page number
        name: pageNr
        in: query
        schema:
          type: integer
      - description: 'Sorting order. Supported values are: `id`, `relevance`, `custFirstname`, `custName`, `dateSoldAt`, `registration`, `serial`, `brand`, `model`, `version`, `year`, `createdAt`, `updatedAt`'
        name: sort
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceResponse'
        '401':
          description: Forbidden
        '500':
          description: Internal Server Error
    post:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      tags:
      - device
      summary: Add a new device record
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceResponse'
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceRequest'
        description: Device record
        required: true
  /api/v1/device-global:
    get:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      description: 'Allows searching for devices matching specific criteria across all accessible tenants


        > Param           | Default&nbsp; | Example&nbsp; | Description

        > ----------------|---------|---------|----

        > `registration`  | -       | 11      | Filter by registration number. Exact match

        > `serial`        | -       | 22      | Filter by serial number. Exact match

        > `brand`         | -       | Tesla   | Filter by brand. Exact match

        > `model`         | -       | Model S | Filter by model. Exact match

        > `version`       | -       | 100 AWD | Filter by version. Exact match

        > `year`          | -       | 2020    | Filter by year. Exact match

        > `searchPhrase`  | -       | AWD     | Fuzzy search over fields `registration`, `serial`, `brand`, `model`, `version`, `year` and owner name.

        >'
      tags:
      - device
      summary: Search for devices across all accessible tenants
      parameters:
      - description: Registration number
        name: registration
        in: query
        schema:
          type: string
      - description: Serial number
        name: serial
        in: query
        schema:
          type: string
      - description: Device brand
        name: brand
        in: query
        schema:
          type: string
      - description: Device model
        name: model
        in: query
        schema:
          type: string
      - description: Device version
        name: version
        in: query
        schema:
          type: string
      - description: Device year
        name: year
        in: query
        schema:
          type: string
      - description: Device color
        name: color
        in: query
        schema:
          type: string
      - description: Customer ids
        name: customerId
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - description: Customer name
        name: customerName
        in: query
        schema:
          type: string
      - description: Fulltext search phrase
        name: searchPhrase
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceResponse'
        '401':
          description: Forbidden
        '500':
          description: Internal Server Error
  /api/v1/device/{deviceId}:
    delete:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      description: Delete one device record
      tags:
      - device
      summary: Delete one device record
      parameters:
      - description: Record id
        name: deviceId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
    patch:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      tags:
      - device
      summary: Update device record
      parameters:
      - description: Record id
        name: deviceId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceResponse'
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceRequest'
        description: Device record
        required: true
  /api/v1/device/{deviceId}/log:
    get:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      description: Retrieve logged values for device record
      tags:
      - device
      summary: Retrieve device record related logged values
      parameters:
      - description: Device id
        name: deviceId
        in: path
        required: true
        schema:
          type: integer
      - description: Log type name
        name: name
        in: query
        schema:
          type: string
      - description: Log entry time range lower bound (yyyy-mm-ddThh:mm:ssZ)
        name: dateStart
        in: query
        schema:
          type: string
      - description: Log entry time range upper bound (yyyy-mm-ddThh:mm:ssZ)
        name: dateEnd
        in: query
        schema:
          type: string
      - description: If total matching record count should be return in response header
        name: withTotalCount
        in: query
        schema:
          type: boolean
      - description: Result page size
        name: pageSize
        in: query
        schema:
          type: integer
      - description: Result page number
        name: pageNr
        in: query
        schema:
          type: integer
      - description: 'Sorting order. Supported values are: `id`, `deviceId`, `workorderId`, `date`, `name`, `createdAt`, `updatedAt`'
        name: sort
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceLogResponse'
        '401':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
components:
  schemas:
    DeviceLogResponse:
      type: object
      properties:
        createdAt:
          type: string
        createdById:
          type: integer
        date:
          type: string
        deviceId:
          type: integer
        id:
          type: integer
        name:
          type: string
        updatedAt:
          type: string
        updatedById:
          type: integer
        valueInt:
          type: integer
        workorderId:
          type: integer
    DeviceRequest:
      type: object
      properties:
        brand:
          type: string
          example: Volvo
        color:
          type: string
          example: yellow
        customerId:
          type: integer
          example: 1
        data:
          type: object
        dateSoldAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        hidden:
          type: boolean
          example: false
        id:
          type: integer
          example: 1
        invoiceId:
          type: integer
          example: 1
        model:
          type: string
          example: S90
        notes:
          type: string
          example: Some notes
        productId:
          type: integer
          example: 1
        productName:
          type: string
          example: Some product
        registration:
          type: string
          example: 123 abc
        serial:
          type: string
          example: '123'
        setAccessToken:
          type: string
          example: secret
        version:
          type: string
          example: '1'
        warrantyEndAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        warrantyStartAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        year:
          type: string
          example: '2020'
    DeviceResponse:
      type: object
      properties:
        brand:
          type: string
          example: Volvo
        callerAccess:
          type: boolean
          example: false
        color:
          type: string
          example: yellow
        createdAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        createdById:
          type: integer
          example: 1
        customerId:
          type: integer
          example: 1
        data:
          type: object
        dateSoldAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        hidden:
          type: boolean
          example: false
        id:
          type: integer
          example: 1
        invoiceId:
          type: integer
          example: 1
        limitedAccess:
          type: boolean
          example: false
        model:
          type: string
          example: S90
        notes:
          type: string
          example: Some notes
        productId:
          type: integer
          example: 1
        productName:
          type: string
          example: Some product
        registration:
          type: string
          example: 123 abc
        relevance:
          type: number
          example: 0.5
        serial:
          type: string
          example: '123'
        updatedAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        updatedById:
          type: integer
          example: 1
        version:
          type: string
          example: '1'
        warrantyEndAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        warrantyStartAt:
          type: string
          example: '2022-01-01T00:00:00Z'
        year:
          type: string
          example: '2020'
  securitySchemes:
    AccessToken:
      type: apiKey
      name: accessToken
      in: header
    ErplyClientCode:
      type: apiKey
      name: clientCode
      in: header
    ErplyJWT:
      type: apiKey
      name: jwt
      in: header
    ErplySession:
      type: apiKey
      name: sessionKey
      in: header
    RequestKey:
      type: apiKey
      name: requestKey
      in: header