openapi: 3.0.0 info: title: Labguru Antibodies Stocks API description: "Labguru API is a JSON / REST based API, get started by reviewing the documentation below or code samples.
\n Join our dedicated [Slack channel](https://join.slack.com/t/labgurus/shared_invite/zt-199glfagl-QZQ_bKl7vLAi8CQSuNrRug)\n to be in direct contact with our API team and be informed about the latest updates.
\n ***[API introduction and overview](https://help.labguru.com/en/articles/6149483-api-introduction-and-overview)***" version: v1 tags: - name: Stocks paths: /api/v1/stocks: post: summary: Add stock tags: - Stocks parameters: [] responses: '201': description: stock created '422': description: invalid request - Name cannot be blank '401': description: 'Error: Unauthorized' requestBody: content: application/json: schema: $ref: '#/components/schemas/createStock' required: true get: summary: List all stocks in your account tags: - Stocks parameters: - name: token in: query required: true schema: type: string - name: page in: query description: the default call is with page = 1 schema: type: integer - name: meta in: query description: show summarized data information - true/false schema: type: string default: 'true' - name: stockable_type in: query description: inventory item type(In order to list all stocks of a stockable item) example: Biocollections::Tissue schema: type: string - name: stockable_id in: query description: inventory item id (In order to list all stocks of a stockable item) example: 105 schema: type: integer - name: filter in: query description: "**Implementation of the filter necessitates the utilization of all three components: field name, operator, and value**\n\n**Valid field names are:**\n\n\n \n \n \n \n
\n
    \n
  • name
  • \n
  • id
  • \n
  • volume_to_display
  • \n
  • weight_to_display
  • \n
  • storage_location
  • \n
  • created_at
  • \n
  • owner_id
  • \n
  • description
  • \n
  • stored_on
  • \n
  • stored_by
  • \n
\n
\n
    \n
  • privacy
  • \n
  • container_type
  • \n
  • units
  • \n
  • lot
  • \n
  • expiration_date
  • \n
  • aliquoted_by
  • \n
  • aliquoted_on
  • \n
  • content
  • \n
  • barcode
  • \n
  • concentration_to_display
  • \n
\n
\n\n**Valid operators are:**\n\n \n \n \n \n
\n String operators\n
    \n
  • contains: contains
  • \n
  • eq: is equal to
  • \n
  • neq: is not equal to
  • \n
  • doesnotcontain: not contains
  • \n
  • startswith: starts with
  • \n
  • endswith: ends with
  • \n
  • isnullorempty: is empty
  • \n
  • isnotnullorempty: is not empty
  • \n
\n
\n Date & Number operators\n
    \n
  • _eq: is equal to
  • \n
  • _neq: is not equal to
  • \n
  • _gte: is after than or equal to
  • \n
  • _gt: is after than
  • \n
  • _lte: is before than or equal to
  • \n
  • _lt: is before than
  • \n
  • isnull: is empty
  • \n
  • isnotnull: is not empty
  • \n
\n
\n\n\n\n\n**Value:** The desired search term\n" schema: $ref: '#/components/schemas/indexFiltering' responses: '200': description: OK '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Unauthorized' /api/v1/stocks/{id}/mark_as_consumed: post: summary: Marks stock as consumed tags: - Stocks parameters: - name: id in: path required: true description: stock id schema: type: integer - name: token in: query required: true schema: type: string responses: '200': description: stock marked as consumed '401': description: 'Error: Unauthorized' /api/v1/stocks/{id}/mark_as_output: post: summary: Marks stock as output tags: - Stocks parameters: - name: id in: path required: true description: stock id schema: type: integer - name: token in: query required: true schema: type: string responses: '200': description: stock marked as output '401': description: 'Error: Unauthorized' requestBody: content: application/json: schema: type: object required: - token properties: exp_id: type: integer description: the experiment id example: 103 required: true /api/v1/stocks/{id}/unmark_output: post: summary: Unmarks stock as output tags: - Stocks parameters: - name: id in: path required: true description: stock id schema: type: integer - name: token in: query required: true schema: type: string responses: '200': description: stock unmarked as output '401': description: 'Error: Unauthorized' requestBody: content: application/json: schema: type: object required: - token properties: exp_id: type: integer description: the experiment id example: 103 required: true /api/v1/stocks/{id}/update_stock_amount: post: summary: Update stock weight/volume for stock in sample element tags: - Stocks parameters: - name: token in: query required: true schema: type: string - name: id in: path required: true description: stock id schema: type: integer responses: '200': description: stock amount updated '401': description: 'Error: Unauthorized' requestBody: content: application/json: schema: $ref: '#/components/schemas/updateStockAmountInSampleElement' required: true /api/v1/stocks/{id}: put: summary: Update stock attributes tags: - Stocks parameters: - name: id in: path required: true description: stock id schema: type: integer responses: '200': description: stock updated '422': description: invalid request - Name cannot be blank '401': description: 'Error: Unauthorized' requestBody: content: application/json: schema: $ref: '#/components/schemas/updateStock' required: true get: summary: Get stock by id tags: - Stocks parameters: - name: token in: query required: true schema: type: string - name: id in: path required: true description: stock id schema: type: integer responses: '200': description: success '404': description: stock not found delete: summary: Delete stock tags: - Stocks parameters: - name: token in: query required: true schema: type: string - name: id in: path required: true description: stock id schema: type: integer responses: '204': description: no content '404': description: not found /api/v1/stocks/get_stocks_by_barcode: get: summary: Get stock by barcode/id tags: - Stocks parameters: - name: token in: query required: true schema: type: string - name: input in: query required: true description: 'Stock’s Barcode or Id ' example: AB-588 schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OK' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Unauthorized' components: schemas: createStock: allOf: - $ref: '#/components/schemas/StockBaseRequest' - type: object properties: item: type: object required: - name - storage_id - storage_type - stockable_type - stockable_id updateStock: allOf: - $ref: '#/components/schemas/StockBaseRequest' Unauthorized: type: object properties: message: type: string example: You are not authorized to perform this action indexFiltering: type: object required: - kendo properties: kendo: type: string example: 'true' filter: type: object properties: logic: type: string example: and description: Filter logic (e.g., "and" or "or") filters: type: object description: Array of filter objects properties: '0': type: object description: Filter object properties: field: type: string example: name description: Field name to filter by operator: type: string example: contains description: Filter operator (e.g., "contains") value: type: string example: myValue description: Filter value '1': type: object description: Filter object properties: field: type: string example: id description: Field name to filter by operator: type: string example: _eq description: Filter operator (e.g., "_eq") value: type: integer example: '172' description: Filter value '2': type: object description: Filter object properties: field: type: string example: stored_on description: Field name to filter by operator: type: string example: _gt description: Filter operator (e.g., "_gt") value: type: string format: date description: Filter value - Date in the following format 'YYYY-MM-DD' example: '2023-01-11' '3': type: object description: Filter object properties: field: type: string example: content description: Field name to filter by operator: type: string example: startswith description: Filter operator (e.g., "startswith") value: type: string example: pla description: Filter value '4': type: object description: Filter object properties: field: type: string example: stored_by description: Field name to filter by operator: type: string example: contains description: Filter operator (e.g., "contains") value: properties: name: type: string example: User Name description: User name to filter by id: type: string example: '[1]' description: User id in the following format "[1]" StockBaseRequest: type: object required: - token properties: token: type: string example: YOUR TOKEN IS HERE item: type: object properties: name: type: string description: 'the stock name ' storage_id: type: integer description: 'type of storages: 1 - Room, 21 - Shelf, 61 - Closet, 81 - Drawer, 111 - Cage, 120 - Refrigerator ,121 - Freezer, 181 - Rack Cell , 201 - Cryo container, 251 - Slide Rack, 261 - Rack Cell, 322 - Rack, 323 - Rack Cell, 321 - Other' storage_type: type: string description: 'storage class name - [Box - System::Storage::Box] [all other storages type - System::Storage::Storage] ' stockable_type: type: string description: 'class name of the stockable item type, such as: Biocollections::Antibody' stockable_id: type: integer description: stockable item id location_in_box: type: integer description: if storage is grid box, indicates numerical location in box owner_id: type: integer description: id of the owner - by default it's your member id expiration_date: type: string format: date description: 'in the following format: yyyy-mm-dd ' lot: type: string description: number of batch description: type: string description: general description barcode: type: string description: 'barcode ' stored_by: type: integer description: member id concentration: type: string description: concentration concentration_prefix: type: string description: x10^/E^ example: E^ concentration_unit_id: type: integer description: 9-mg/mL, 10-g/L, 11-M, 12-mM, 13-µM, 14-µg/mL, 15-ng/µL, 16-ratio, 17-%, 18-g/mL example: 9 concentration_exponent: type: integer description: concentration exponent concentration_remarks: type: string description: concentration remarks volume: type: string description: volume volume_prefix: type: string description: x10^/E^ example: E^ volume_unit_id: type: integer description: 6-L, 7-mL, 8-µL example: 7 volume_exponent: type: integer description: volume exponent volume_remarks: type: string description: volume remarks weight: type: string description: weight weight_prefix: type: string description: x10^/E^ example: E^ weight_unit_id: type: integer description: 1 -Kg, 2-g, 3-mg, 4-µg, 5-ng example: 3 weight_exponent: type: integer description: weight exponent weight_remarks: type: string description: weight remarks OK: type: object properties: message: type: string type: type: string example: Created updateStockAmountInSampleElement: type: object required: - token properties: token: type: string example: YOUR TOKEN IS HERE unit_type: type: string description: weight/volume element_id: type: integer description: the samples element id amount_used: type: string description: amount_used example: 15 unit_type_name: type: string description: unit_type_name example: mg subtract: type: string description: 'true' example: 'true' sample_id: type: integer description: the sample id