Skip to content
Utilerio
All endpoints

Excel / CSV Comparator

POST/api/v1/tools/spreadsheet-diff

Compare two spreadsheets by a key column and see added, removed and changed rows.

Authentication

Requires an API key in the X-API-Key header.

Try it

POST/api/v1/tools/spreadsheet-diff

Parameters

rowsAstringrequired

"Before" rows as an array of objects.

rowsBstringrequired

"After" rows as an array of objects.

keyColumnstringrequired

Column used to match rows between the two sides.

trimWhitespacebooleanoptional

Trim whitespace before comparing values. Default true.

ignoreCasebooleanoptional

Case-insensitive comparison.

Request body

{
  "rowsA": [
    {
      "id": "1",
      "name": "Ada"
    },
    {
      "id": "2",
      "name": "Alan"
    }
  ],
  "rowsB": [
    {
      "id": "1",
      "name": "Ada Lovelace"
    },
    {
      "id": "3",
      "name": "Grace"
    }
  ],
  "keyColumn": "id"
}

Response codes

  • 200Success.
  • 400Invalid request — check your body or parameters.
  • 401Missing or invalid API key.
  • 403The API key is not scoped to this endpoint.
  • 429Rate limit exceeded — retry after a short wait.

Language

cURL

Request

curl -X POST https://utilerio.com/api/v1/tools/spreadsheet-diff \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rowsA":[{"id":"1","name":"Ada"},{"id":"2","name":"Alan"}],"rowsB":[{"id":"1","name":"Ada Lovelace"},{"id":"3","name":"Grace"}],"keyColumn":"id"}'

Response

{ "added": [{ "id": "3", "name": "Grace" }], "removed": [{ "id": "2", "name": "Alan" }], "changed": [{ "key": "1", "before": { "id": "1", "name": "Ada" }, "after": { "id": "1", "name": "Ada Lovelace" }, "changedColumns": ["name"] }], "unchangedCount": 0, "duplicateKeysA": [], "duplicateKeysB": [], "emptyKeyCountA": 0, "emptyKeyCountB": 0 }