Skip to main content
Sheet Ninja turns every tab in your Google Sheets into its own set of REST-style endpoints. This lets you treat your spreadsheet like a database—allowing you to read, add, update, and delete rows with simple web requests that your AI already knows how to do. All endpoints work on a single tab (worksheet) inside your project.

Base URL

Every endpoint is tied to your account and project. Your base URL looks like this:
https://api.sheetninja.io/{namespace}/{projectName}/{tabSlug}
  • namespace: Your unique user ID (e.g., c01c052...).
  • projectName: The name of your project.
  • tabSlug: The name of the specific tab (sheet) you’re using.
You can find your full, ready-to-use endpoint URLs directly in the Sheet Ninja dashboard.

List Rows

Method: GET Gets the rows from your sheet. Use this endpoint to:
  • Display tables or lists
  • Power dashboards and internal tools
  • Export spreadsheet data into other systems
To keep things fast and stop your AI context from filling up too quickly, Sheet Ninja returns your data in pages of 100 rows at a time (Pro & Max users get much higher page sizes). Think of it as organised batches: instead of one massive data dump that might hit your AI’s limit, you get exactly what you need in manageable chunks. You still have access to every row in your sheet—you just grab them 100 at a time. Why this is great:
  • Helps you mamage your context window prevents your AI from losing track of instructions due to massive data inputs.
  • Smaller batches load almost instantly, making your apps and agents feel much more responsive.
  • Every response includes a meta section with a next_offset so you (or your agent) know exactly how to pull the next page. This is industry standard and your AI agent will know how to loop through all the pages easily.
Each row comes back as a JSON object, and we even add a handy id field representing the physical row number in your sheet.

Get Individual Row

Method: GET Gets a single row from your sheet using its row number (like /5). Perfect for when you need to show details for just one item or load data into a specific form. Remember, Row 1 is your header, so your data starts at Row 2!

Add Row

Method: POST Adds new data to the bottom of your sheet. You can add just one row at a time or send a whole list of them to update your sheet in bulk. To keep things stable and fast, Trial Users can add up to 10 rows in a single batch (with Pro & Max users able to add much more in a single request). If you send data for a column that doesn’t exist, Sheet Ninja will just skip it and let you know.

Update Row

Method: PATCH Changes specific cells in a row using its row number. Only the fields you send in your request are changed. Everything else in that row stays exactly the same. Great for updating statuses or editing single fields.

Delete Row

Method: DELETE Removes a specific row from your sheet using its row number. Note: Since this physically removes the row, any rows below it will move up to fill the gap. This means their row numbers (IDs) will change!

How data is mapped

  • Magic Mapping: You can use camelCase in your JSON (like firstName) and it will automatically find the right column (like “First Name”) in your sheet.
  • Row IDs: Sheet Ninja adds an id field to every row it sends back. This is the row’s physical position in the sheet.
  • Instant Sync: As soon as you make a request, the change appears in your Google Sheet.
  • Empty Cells: If a cell is blank in your sheet, it comes back as an empty string "".

Notes

  • Access Control: You can turn Read, Add, Update, or Delete permissions on or off for each tab in your dashboard.
  • Source of Truth: Your Google Sheet is always the master version of your data.

This page is a high-level overview. For all the technical details, request formats, and response codes, check out the API Reference.