Erply Product Replacement API

The Product Replacement API from Erply — 2 operation(s) for product replacement.

Operations 3

GET /v1/product/replacements/{ids} Get products replacement information
POST /v1/product/{newProductId}/replace/{oldProductId} Create a new product replacement
DELETE /v1/product/{newProductId}/replace/{oldProductId} Delete an existing product replacement

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-product-replacement-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-product-replacement-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 Product Replacement API
  contact: {}
  version: 2.36.5
tags:
- name: Product Replacement
paths:
  /v1/product/replacements/{ids}:
    get:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: 'Not to be mistaken with the product substituting feature. This feature is meant for complete replacement

        of old products (discontinued etc).

        A product cannot replace multiple products. Api can still return multiple replacements however since

        api also returns inherited replacements from the replaced products.'
      tags:
      - Product Replacement
      summary: Get products replacement information
      parameters:
      - description: product IDs
        name: ids
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
  /v1/product/{newProductId}/replace/{oldProductId}:
    post:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: 'Not to be mistaken with the product substituting feature. This feature is meant for complete replacement

        of old products (discontinued etc).

        If the replaced product has replacements on its own then the new product will also inherit all of them.'
      tags:
      - Product Replacement
      summary: Create a new product replacement
      parameters:
      - description: product ID - product that replaces the other product
        name: newProductId
        in: path
        required: true
        schema:
          type: string
      - description: product ID - product that will be replaced
        name: oldProductId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
    delete:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: 'Not to be mistaken with the product substituting feature. This feature is meant for complete replacement

        of old products (discontinued etc).

        Call only removes the requested replacement, it will not remove replacements that might have been inherited when the replacement was added.'
      tags:
      - Product Replacement
      summary: Delete an existing product replacement
      parameters:
      - description: product ID - product that replaces the other product
        name: newProductId
        in: path
        required: true
        schema:
          type: string
      - description: product ID - product that will be replaced
        name: oldProductId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.MessageResponse'
components:
  schemas:
    responses.MessageResponse:
      type: object
      properties:
        message:
          type: string
          example: some message
    responses.Response:
      type: object
      properties:
        id:
          type: integer
          example: 73
  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