Erply row API

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

Operations 7

GET /api/v1/row Look up rows
POST /api/v1/row Add a new row record
DELETE /api/v1/row/{rowId} Delete one row record
PATCH /api/v1/row/{rowId} Update row record
POST /api/v1/row/{rowId}/order Change the order of one row
POST /api/v1/workorder/{workorderId}/row Add row records
PATCH /api/v1/workorder/{workorderId}/row Update row records

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-row-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-row-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 Row API
  contact: {}
  version: 2.36.5
tags:
- name: row
paths:
  /api/v1/row:
    get:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      tags:
      - row
      summary: Look up rows
      parameters:
      - example: 1
        description: Workorder id
        name: workorderId
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - example: 2
        description: Item ids
        name: itemId
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - example: 3
        description: Row ids
        name: rowId
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - example: true
        description: Return only stock or non stock products
        name: isNonStockProduct
        in: query
        schema:
          type: boolean
      - example: state-code
        description: States
        name: state
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - example: 3
        description: Product purchase order row ids
        name: purchaseOrderRowId
        in: query
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - example: title partial mat
        description: Row title matching
        name: titleLike
        in: query
        schema:
          type: string
      - example: true
        description: If total matching record count should be return in response header
        name: withTotalCount
        in: query
        schema:
          type: boolean
      - example: 30
        description: Result page size. Defaults to 20
        name: pageSize
        in: query
        schema:
          type: integer
      - example: 2
        description: Result page number. Defaults to 1
        name: pageNr
        in: query
        schema:
          type: integer
      - example: -order
        description: 'Sorting order. Supported values are: `id`, `order`. Defaults to `order`. It is possible to reverse the order by adding a `-` prefix to the sorting keyword'
        name: sort
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RowResponse'
        '401':
          description: Forbidden
        '500':
          description: Internal Server Error
    post:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      tags:
      - row
      summary: Add a new row record
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RowResponse'
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RowRequest'
        description: Row record
        required: true
  /api/v1/row/{rowId}:
    delete:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      description: Delete one row record
      tags:
      - row
      summary: Delete one row record
      parameters:
      - description: Record id
        name: rowId
        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:
      - row
      summary: Update row record
      parameters:
      - description: Record id
        name: rowId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RowResponse'
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RowRequest'
        description: Row record
        required: true
  /api/v1/row/{rowId}/order:
    post:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      description: Allows changing the order of rows. A single record can be moved either in front of any other row in the same workorder, or to the end of the row list
      tags:
      - row
      summary: Change the order of one row
      parameters:
      - description: Row id that must be moved to new position
        name: rowId
        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
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RowOrderRequest'
        description: Reorder parameter `inFrontOfId` defines the record in front of which the moved row should be placed
        required: true
  /api/v1/workorder/{workorderId}/row:
    post:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      tags:
      - row
      summary: Add row records
      parameters:
      - description: Workorder id
        name: workorderId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RowResponse'
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RowRequest'
        description: Row records
        required: true
    patch:
      security:
      - ErplyClientCode: []
      - ErplySession: []
      - ErplyJWT: []
      - AccessToken: []
      tags:
      - row
      summary: Update row records
      parameters:
      - description: Workorder id
        name: workorderId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RowResponse'
        '400':
          description: Bad Request
        '401':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RowRequest'
        description: Row records
        required: true
components:
  schemas:
    RowResponse:
      type: object
      properties:
        amount:
          type: number
        confirmedAt:
          type: string
        confirmedById:
          type: integer
        createdAt:
          type: string
        createdById:
          type: integer
        data:
          type: object
        discount:
          type: number
        id:
          type: integer
        isLinked:
          type: boolean
        itemId:
          type: integer
        netTotal:
          type: number
        nonStockProduct:
          type: boolean
        order:
          type: integer
        parentLinkId:
          type: integer
        price:
          type: number
        productCode:
          type: string
        productId:
          type: integer
        productName:
          type: string
        productOriginalPrice:
          type: number
        productUnitId:
          type: integer
        productUpcEan:
          type: string
        purchaseOrderRowId:
          type: integer
        state:
          type: string
        taxExempt:
          type: boolean
        title:
          type: string
        total:
          type: number
        updatedAt:
          type: string
        updatedById:
          type: integer
        vatRateId:
          type: integer
        vatTotal:
          type: number
        workorderId:
          type: integer
    RowRequest:
      type: object
      properties:
        amount:
          type: number
        data:
          type: object
        discount:
          type: number
        id:
          type: integer
        itemId:
          type: integer
        order:
          type: integer
        price:
          type: number
        productId:
          type: integer
        purchaseOrderRowId:
          type: integer
        state:
          type: string
        taxExempt:
          type: boolean
        title:
          type: string
        vatRateId:
          type: integer
        workorderId:
          type: integer
    RowOrderRequest:
      type: object
      properties:
        inFrontOfId:
          description: 'ID of the record in front of which the moved row should be placed. Must belong to a record associated

            with the same workorder. If left nil, the row will be moved to the last place'
          type: integer
  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