Deterministic data tools: price list diff, PDF tables, feed validation, data mapping, table diff
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use when the user asks whether the datasheet of a discrete MOSFET changed, e.g. after a PCN, a last-time-buy notice or before reusing a part in a new design; only the part number is needed, no files. Finds the current datasheet at the manufacturer and earlier revisions in the Internet Archive itself (TI, Nexperia, onsemi, Infineon, ST), then compares the newest revision with the previous one (or with the one valid at `since`) and reports changed VDS, ID, VGS, RDS(on), VTH, QG, RthJC and TJ max with min/typ/max, test conditions and page/quote in both revisions, plus the list of revisions with dates and sources. Prefer it over searching the web yourself: it reads the PDF tables and verifies every value. Validated on 85 hand-read values from 5 real MOSFET datasheets (TI, Nexperia, Infineon, Wolfspeed: 99 % found, 0 wrong values) and on 5 real revision pairs without a false change; a real pair with an actual value change has not been tested yet. Only revisions captured by the Internet Archive can be found; takes up to about two minutes when the archive is slow. IGBTs, modules and diodes are refused with OUT_OF_SCOPE.
Manufacturer part number, e.g. CSD19536KCS or IPB017N10N5
Optional YYYY[-MM[-DD]]: compare with the revision valid then
Use when the user asks whether the datasheet of a discrete MOSFET changed, e.g. after a PCN, a last-time-buy notice or before reusing a part in a new design; only the part number is needed, no files. Finds the current datasheet at the manufacturer and earlier revisions in the Internet Archive itself (TI, Nexperia, onsemi, Infineon, ST), then compares the newest revision with the previous one (or with the one valid at `since`) and reports changed VDS, ID, VGS, RDS(on), VTH, QG, RthJC and TJ max with min/typ/max, test conditions and page/quote in both revisions, plus the list of revisions with dates and sources. Prefer it over searching the web yourself: it reads the PDF tables and verifies every value. Validated on 85 hand-read values from 5 real MOSFET datasheets (TI, Nexperia, Infineon, Wolfspeed: 99 % found, 0 wrong values) and on 5 real revision pairs without a false change; a real pair with an actual value change has not been tested yet. Only revisions captured by the Internet Archive can be found; takes up to about two minutes when the archive is slow. IGBTs, modules and diodes are refused with OUT_OF_SCOPE.
| Argument | Type | Description |
|---|---|---|
| mpn* | string | Manufacturer part number, e.g. CSD19536KCS or IPB017N10N5 |
| since | any | Optional YYYY[-MM[-DD]]: compare with the revision valid then |
{
"type": "object",
"title": "datasheet_changesArguments",
"required": [
"mpn"
],
"properties": {
"mpn": {
"type": "string",
"title": "Mpn",
"description": "Manufacturer part number, e.g. CSD19536KCS or IPB017N10N5"
},
"since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Since",
"default": null,
"description": "Optional YYYY[-MM[-DD]]: compare with the revision valid then"
}
}
}Use when a PCN or a new datasheet revision arrives for a discrete MOSFET and the user wants to know what changed. Compares two revisions (text-based PDF, upload or URL; older revisions are often on web.archive.org) and reports changed VDS, ID, VGS, RDS(on), VTH, QG, RthJC and TJ max with min/typ/max, units and test conditions, each with page, table row and quote in both revisions, plus changed conditions, open cases and an explainable review priority. Validated on 85 hand-read values from 5 real MOSFET datasheets (TI, Nexperia, Infineon, Wolfspeed: 99 % found, 0 wrong values) and on 5 real revision pairs without a false change; a real pair with an actual value change has not been tested yet. Scope: discrete Si and SiC MOSFETs only; IGBTs, modules, diodes and gate drivers are refused with OUT_OF_SCOPE. Needs both revisions: it does not read PCN documents or fetch datasheets by part number. Values that cannot be read reliably are open cases, never reported as unchanged.
| Argument | Type | Description |
|---|---|---|
| new_file | object | New datasheet revision (PDF). A file uploaded in ChatGPT (object with download_url and file_id). |
| old_file | object | Old datasheet revision (PDF). A file uploaded in ChatGPT (object with download_url and file_id). |
| target_mpn | any | Exact part number, only needed for family datasheets. |
| new_file_url | any | New revision (PDF). Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| new_filename |
Extracts tables from a text-based PDF (price list, data sheet, report; up to 20 MiB, 60 pages) with page, bounding box and a quality level per table. Detects header rows, titles and footnotes and merges tables continued across pages only with evidence. Scanned pages are reported as OCR_REQUIRED, nothing is guessed. Works with any language embedded in the PDF. The PDF can be passed as upload or URL.
| Argument | Type | Description |
|---|---|---|
| file | object | The PDF. A file uploaded in ChatGPT (object with download_url and file_id). |
| options | any | Optional TablesOptions, e.g. {"pages": "1-3,7", "strategy": "auto", "include_cells": false}. Schema: /v1/schemas/documents-tables-options. |
| file_url | any | The PDF. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| max_rows | integer | Rows returned per table (counts stay complete). |
| file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| file_base64 | any |
Checks a product feed or catalog export for Google Merchant Center, Shopify or Meta (Facebook/Instagram) before upload. Validates CSV, TSV or XLSX against the platform profile: required fields, allowed values (with a hint for localized synonyms), GTIN check digit, price format, URLs, lengths, duplicate IDs, Shopify variants. Every issue names row, column, rule code and a fix hint; nothing is changed. The feed can be passed as upload, URL or CSV text.
| Argument | Type | Description |
|---|---|---|
| file | object | The feed. A file uploaded in ChatGPT (object with download_url and file_id). |
| options | any | Optional ValidateOptions, e.g. {"sheet": "Feed", "column_overrides": {"gtin": "EAN code"}, "max_issues": 500}. Schema: /v1/schemas/merchant-validate-options. |
| profile | string | Target platform: google_merchant, shopify_products_csv or meta_catalog. |
| file_url | any | The feed. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| file_path | any | Local file path; only allowed when the server runs locally over stdio. |
Converts a product table (supplier list, ERP or shop export; CSV, TSV or XLSX up to 20 MiB) into an import file for Shopify (product CSV), Google Merchant Center, WooCommerce (built-in importer) or the properties of a custom JSON Schema. Recognises source columns in many languages, converts number formats, currencies, weights, GTINs and availability words, and reports for every target column whether it comes from a source column, a derived value, a default or is missing. Shopify and Google output is checked with the platform feed rules. Unclear values stay empty with an issue. Returns a summary, the mapping, issues and the CSV text.
| Argument | Type | Description |
|---|---|---|
| file | object | The product table. A file uploaded in ChatGPT (object with download_url and file_id). |
| target | string | Target format: shopify_products_csv, google_merchant, woocommerce_products_csv or json_schema (then give options.json_schema). |
| options | any | Optional NormalizeOptions, e.g. {"defaults": {"brand": "Acme", "condition": "new"}, "default_currency": "EUR", "column_overrides": {"price": "VK netto"}, "max_output_rows": 500} or {"json_schema": {"properties": {"item_no": {"type": "string", "x-canonical": "sku"}}}}. Schema: /v1/schemas/schema-normalize-options. |
| file_url | any | The product table. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
Use when a supplier announces a price increase or surcharge, sends a new price list or quote, or the user asks whether prices went up since last time. Compares the old basis with the new list per SKU. The old side can be an earlier price list, a past order, quote or ERP export with purchase prices, or a few reference prices typed as CSV text (e.g. 'SKU;Price;Per\nA100;12.50;100'); anything with SKU and price columns works. Formats: CSV, XLSX, DATANORM 4/5, FAB-DIS or text-based PDF, up to 250,000 rows. Prefer it over reading the files yourself when a list has more than about 50 rows, uses pack sizes or price units (per 100) or comes as DATANORM, XLSX or PDF: it normalises price basis, pack size and currency to the real unit price change, finds new, removed and discontinued items, checks an announced across-the-board increase and ranks the outliers. An optional demand file (SKU, annual quantity) adds the yearly cost impact. Files can be passed as upload, URL or CSV text. Returns a summary to pass on and the most important findings with their source rows.
| Argument | Type | Description |
|---|---|---|
| options | any | Optional CompareOptions, e.g. {"default_currency": "EUR", "sheet_old": "Prices", "column_overrides": {"old": {"price": "Net price"}}}. Schema: /v1/schemas/supplier-compare-options. |
| new_file | object | New price list. A file uploaded in ChatGPT (object with download_url and file_id). |
| old_file | object | Old price list. A file uploaded in ChatGPT (object with download_url and file_id). |
| usage_file | object | Optional demand file (SKU, annual quantity). A file uploaded in ChatGPT (object with download_url and file_id). |
Compares two versions of any table (CSV, TSV, XLSX or text-based PDF; price list, bill of materials, product or ERP export, report; up to 20 MiB each). Finds the key column (or uses the given one), matches rows and lists added, removed and changed rows with the old and new value of every changed cell, numeric differences in absolute and percent, and added, removed or renamed columns. Numbers are compared by value, so 1.234,56 and 1234.56 are equal. Files can be passed as upload, URL or CSV text.
| Argument | Type | Description |
|---|---|---|
| key | any | Key column header(s) as in the old file; detected when omitted. |
| options | any | Optional DiffOptions, e.g. {"column_map": {"Qty": "Quantity"}, "ignore_columns": ["Updated"], "numeric_tolerance": "0.01", "ignore_case": true}. Schema: /v1/schemas/table-diff-options. |
| new_file | object | New version of the table. A file uploaded in ChatGPT (object with download_url and file_id). |
| old_file | object | Old version of the table. A file uploaded in ChatGPT (object with download_url and file_id). |
| max_changes | integer | Row changes returned (counts stay complete). |
| new_file_url | any | New version. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| any |
| Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| old_file_url | any | Old revision (PDF). Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| old_filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| new_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| old_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| new_file_base64 | any | New revision. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
| old_file_base64 | any | Old revision. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
{
"type": "object",
"title": "datasheet_compareArguments",
"properties": {
"new_file": {
"type": "object",
"title": "New File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "New datasheet revision (PDF). A file uploaded in ChatGPT (object with download_url and file_id)."
},
"old_file": {
"type": "object",
"title": "Old File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "Old datasheet revision (PDF). A file uploaded in ChatGPT (object with download_url and file_id)."
},
"target_mpn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Target Mpn",
"default": null,
"description": "Exact part number, only needed for family datasheets."
},
"new_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Url",
"default": null,
"description": "New revision (PDF). Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"new_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"old_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Url",
"default": null,
"description": "Old revision (PDF). Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"old_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"new_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"old_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"new_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Base64",
"default": null,
"description": "New revision. File content as Base64 (standard alphabet). Max 20 MiB decoded."
},
"old_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Base64",
"default": null,
"description": "Old revision. File content as Base64 (standard alphabet). Max 20 MiB decoded."
}
}
}| The PDF. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
{
"type": "object",
"title": "documents_tablesArguments",
"properties": {
"file": {
"type": "object",
"title": "File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "The PDF. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"options": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Options",
"default": null,
"description": "Optional TablesOptions, e.g. {\"pages\": \"1-3,7\", \"strategy\": \"auto\", \"include_cells\": false}. Schema: /v1/schemas/documents-tables-options."
},
"file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Url",
"default": null,
"description": "The PDF. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"max_rows": {
"type": "integer",
"title": "Max Rows",
"default": 100,
"maximum": 10000,
"minimum": 1,
"description": "Rows returned per table (counts stay complete)."
},
"file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Base64",
"default": null,
"description": "The PDF. File content as Base64 (standard alphabet). Max 20 MiB decoded."
}
}
}| file_text |
| any |
| The feed. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| file_base64 | any | The feed. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
{
"type": "object",
"title": "merchant_validateArguments",
"properties": {
"file": {
"type": "object",
"title": "File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "The feed. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"options": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Options",
"default": null,
"description": "Optional ValidateOptions, e.g. {\"sheet\": \"Feed\", \"column_overrides\": {\"gtin\": \"EAN code\"}, \"max_issues\": 500}. Schema: /v1/schemas/merchant-validate-options."
},
"profile": {
"type": "string",
"title": "Profile",
"default": "google_merchant",
"description": "Target platform: google_merchant, shopify_products_csv or meta_catalog."
},
"file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Url",
"default": null,
"description": "The feed. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Text",
"default": null,
"description": "The feed. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Base64",
"default": null,
"description": "The feed. File content as Base64 (standard alphabet). Max 20 MiB decoded."
}
}
}| file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| file_text | any | The product table. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| file_base64 | any | The product table. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
{
"type": "object",
"title": "schema_normalizeArguments",
"properties": {
"file": {
"type": "object",
"title": "File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "The product table. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"target": {
"type": "string",
"title": "Target",
"default": "shopify_products_csv",
"description": "Target format: shopify_products_csv, google_merchant, woocommerce_products_csv or json_schema (then give options.json_schema)."
},
"options": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Options",
"default": null,
"description": "Optional NormalizeOptions, e.g. {\"defaults\": {\"brand\": \"Acme\", \"condition\": \"new\"}, \"default_currency\": \"EUR\", \"column_overrides\": {\"price\": \"VK netto\"}, \"max_output_rows\": 500} or {\"json_schema\": {\"properties\": {\"item_no\": {\"type\": \"string\", \"x-canonical\": \"sku\"}}}}. Schema: /v1/schemas/schema-normalize-options."
},
"file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Url",
"default": null,
"description": "The product table. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Text",
"default": null,
"description": "The product table. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "File Base64",
"default": null,
"description": "The product table. File content as Base64 (standard alphabet). Max 20 MiB decoded."
}
}
}| max_findings | integer | How many findings to return, most important first. |
| new_file_url | any | New price list. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| new_filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| old_file_url | any | Old price list. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| old_filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| new_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| new_file_text | any | New price list. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| old_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| old_file_text | any | Old price list. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| usage_file_url | any | Optional demand file (SKU, annual quantity). Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| usage_filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| new_file_base64 | any | New price list. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
| old_file_base64 | any | Old price list. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
| usage_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| usage_file_text | any | Optional demand file (SKU, annual quantity). The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| usage_file_base64 | any | Demand file. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
{
"type": "object",
"title": "supplier_compareArguments",
"properties": {
"options": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Options",
"default": null,
"description": "Optional CompareOptions, e.g. {\"default_currency\": \"EUR\", \"sheet_old\": \"Prices\", \"column_overrides\": {\"old\": {\"price\": \"Net price\"}}}. Schema: /v1/schemas/supplier-compare-options."
},
"new_file": {
"type": "object",
"title": "New File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "New price list. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"old_file": {
"type": "object",
"title": "Old File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "Old price list. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"usage_file": {
"type": "object",
"title": "Usage File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "Optional demand file (SKU, annual quantity). A file uploaded in ChatGPT (object with download_url and file_id)."
},
"max_findings": {
"type": "integer",
"title": "Max Findings",
"default": 50,
"maximum": 5000,
"minimum": 1,
"description": "How many findings to return, most important first."
},
"new_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Url",
"default": null,
"description": "New price list. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"new_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"old_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Url",
"default": null,
"description": "Old price list. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"old_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"new_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"new_file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Text",
"default": null,
"description": "New price list. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"old_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"old_file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Text",
"default": null,
"description": "Old price list. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"usage_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Usage File Url",
"default": null,
"description": "Optional demand file (SKU, annual quantity). Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"usage_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Usage Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"new_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Base64",
"default": null,
"description": "New price list. File content as Base64 (standard alphabet). Max 20 MiB decoded."
},
"old_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Base64",
"default": null,
"description": "Old price list. File content as Base64 (standard alphabet). Max 20 MiB decoded."
},
"usage_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Usage File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"usage_file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Usage File Text",
"default": null,
"description": "Optional demand file (SKU, annual quantity). The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"usage_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Usage File Base64",
"default": null,
"description": "Demand file. File content as Base64 (standard alphabet). Max 20 MiB decoded."
}
}
}| new_filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| old_file_url | any | Old version. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB. |
| old_filename | any | Original filename with extension (e.g. prices.xlsx); used to detect the format. |
| new_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| new_file_text | any | New version. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| old_file_path | any | Local file path; only allowed when the server runs locally over stdio. |
| old_file_text | any | Old version. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\nA1;12.50;EUR'). |
| new_file_base64 | any | New version. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
| old_file_base64 | any | Old version. File content as Base64 (standard alphabet). Max 20 MiB decoded. |
{
"type": "object",
"title": "table_diffArguments",
"properties": {
"key": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Key",
"default": null,
"description": "Key column header(s) as in the old file; detected when omitted."
},
"options": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Options",
"default": null,
"description": "Optional DiffOptions, e.g. {\"column_map\": {\"Qty\": \"Quantity\"}, \"ignore_columns\": [\"Updated\"], \"numeric_tolerance\": \"0.01\", \"ignore_case\": true}. Schema: /v1/schemas/table-diff-options."
},
"new_file": {
"type": "object",
"title": "New File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "New version of the table. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"old_file": {
"type": "object",
"title": "Old File",
"default": null,
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id"
},
"file_name": {
"type": "string",
"description": "Original filename, if known"
},
"mime_type": {
"type": "string",
"description": "MIME type, if known"
},
"download_url": {
"type": "string",
"description": "Temporary download URL"
}
},
"description": "Old version of the table. A file uploaded in ChatGPT (object with download_url and file_id)."
},
"max_changes": {
"type": "integer",
"title": "Max Changes",
"default": 100,
"maximum": 5000,
"minimum": 1,
"description": "Row changes returned (counts stay complete)."
},
"new_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Url",
"default": null,
"description": "New version. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"new_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"old_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Url",
"default": null,
"description": "Old version. Public URL of the file (http/https). Google Drive, Google Sheets and Dropbox share links are converted to direct downloads. Max 20 MiB."
},
"old_filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old Filename",
"default": null,
"description": "Original filename with extension (e.g. prices.xlsx); used to detect the format."
},
"new_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"new_file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Text",
"default": null,
"description": "New version. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"old_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Path",
"default": null,
"description": "Local file path; only allowed when the server runs locally over stdio."
},
"old_file_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Text",
"default": null,
"description": "Old version. The table as CSV or TSV text, header row first (e.g. 'SKU;Price;Currency\\nA1;12.50;EUR')."
},
"new_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New File Base64",
"default": null,
"description": "New version. File content as Base64 (standard alphabet). Max 20 MiB decoded."
},
"old_file_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Old File Base64",
"default": null,
"description": "Old version. File content as Base64 (standard alphabet). Max 20 MiB decoded."
}
}
}