Build a service with an agent
Updated 2026-11-13
You can hand a spreadsheet to your AI and get a published service back. This page walks through the job from "here is my spreadsheet" to a working address: what the agent does at each step and what you decide.
Before you start
- Connect your AI to your account. See Connect Claude, Connect ChatGPT or The AI agents page.
- Give the connection the right level: - Edit (Bearbeiten): the agent builds and tests; you publish yourself in the app. - Full access (Vollzugriff): the agent can also publish.
- Optional: write a General briefing (Allgemeines Briefing) on the AI agents (KI-Agenten) page, for example "Prices are in euro. Ask me before publishing." Every connected AI reads it first.
- Optional: switch on New services need a token (Neue Services brauchen ein Token) if services an AI creates should be protected.
What to tell the agent
Describe the calculation and name the inputs and results you want. For example:
"Build a SpreadAPI service from this loan model. Inputs: loan amount, annual rate, years. Results: monthly payment and total paid. Test it with 150,000 at 4.5% over 15 years; the monthly payment should be about 1,147. Ask me before you publish."
Give the agent the model in one of these ways:
- Describe it or paste the cells into the chat. The agent sends the workbook as cells with formulas.
- Give it a small Excel file (up to 100 KB) if your AI client can read files.
- For a larger file: import it yourself in the app and tell the agent the service's name. See Import Excel.
Tell the agent a result you know. A test against a known number is the best check.
What the agent does, step by step
| Step | The agent | You |
|---|---|---|
| 1. Look around | reads what it may do and the limits of your account (what_can_you_do) | nothing |
| 2. Create the draft | sends the workbook (create_service) and tells you: "I created the draft service "Loan calculator". It is not public yet." | open the editor link if you want to look |
| 3. Choose inputs and outputs | picks the input and output cells (set_parameters); for small workbooks it gets a suggestion, which usually lists only the last result | confirm that all results you asked for are there |
| 4. Test | calculates on the draft with your known values (test_service); this is not counted | compare the result with your spreadsheet |
| 5. Describe | writes what the service does, when to use it and example questions (update_service), and a text per input and output | read the texts; they are what callers and their AI see |
| 6. Publish | asks you, then publishes (publish_service) and gives you the addresses | say yes or no |
| 7. Use | calculates with the published service (run_service) | ask your questions |
What you approve
- Publishing. A draft is not public; only publishing makes it callable. SpreadAPI tells agents to publish only when the user asked for it. If you want to be asked every time, say so in the briefing.
- Public or protected. By default anyone with the address can call a published service. Ask the agent to protect it with a token, or switch on the default for new services. The agent tells you which case applies when it publishes. You create tokens for callers under API → Access (API → Zugriff). See Tokens and access.
- Limits. If the plan does not allow another published service, the agent is refused and should tell you. It is your decision whether to unpublish another service or to upgrade. See Published services limit.
What you get at the end
When the agent publishes, it passes on a sentence such as "The service is published at … Anyone with the address can call it." and these addresses:
- the editor link, to open the service in the app;
- the REST address for code. See Call a service over the API;
- the MCP address for other people's AI. See The MCP address of one service;
- the discovery address for any agent. See The discovery address.
The service is a normal service of your account. You can open it in the app, change it, add a web app, and see its calls on the Usage (Nutzung) tab.
Changing the service later
- Texts, name, token protection: the agent changes them with
update_serviceand publishes again. - Inputs and outputs: the agent sets them again with
set_parametersand publishes again. - Formulas or data: the agent cannot change single cells of an existing workbook. Edit the workbook in the editor, or let the agent create a new service from the changed model.
- A workbook that you saved in the editor can no longer be read by the agent. It can still run the service and change its texts and settings; continue with cells and parameters in the app.
Callers keep getting the old version until the service is published again.
Check the result yourself
- Open the service with the editor link.
- Look at the Configuration (Konfiguration) tab: are the right cells inputs and outputs?
- Open AI → Definition and read the Summary (Zusammenfassung).
- Try a call on API → Test. See The API tester.
What the agent did is also listed under Recent activity (Letzte Aktivität) on the AI agents page.
Tips
- Put a text label left of or above every input and every result in your model. The agent's names and titles are made from these labels.
- Write rates and discounts as percentages (4%, not 0.04 without format). Callers then send decimals, and the service reads 5 as 5%.
- Keep lookup tables on their own sheet.
- Name every result you need. The automatic suggestion usually finds only the last result of a chain.
For developers and agents
The order of actions: what_can_you_do → create_service → (describe_workbook, read_cells) → set_parameters → test_service → update_service → publish_service → run_service. Details and arguments: What a connected agent can do. Rules for the agent: Quickstart for agents.
create_servicewithuse_suggested_parameters: truestores the suggested inputs and outputs right away (workbooks up to 100 formulas).publish_servicereturnsrequires_tokenandlinkswitheditor_url,rest_url,mcp_urlanddiscovery_url.- When New services need a token is on, a service created by an agent starts with
require_tokenset to true.
FAQ
Can an AI build a SpreadAPI service from my spreadsheet?
Yes. Connect the AI to your account with the level Edit or Full access, describe or give it the model, and it creates the service, sets inputs and outputs, tests and, if you allow it, publishes.
Will the agent publish without asking me?
SpreadAPI tells agents to publish only when the user asked for it. To be safe, give the connection the level Edit, which cannot publish, or write "ask me before publishing" in the general briefing.
How do I give the agent my Excel file?
If your AI client can read files, a small .xlsx of up to 100 KB can be sent directly, or the agent reads the file and sends its cells. For larger files, import the file in the app first and let the agent continue with that service.
Is a service built by an agent public?
It is a draft until it is published. Once published, anyone with the address can call it unless token protection is on; switch on New services need a token on the AI agents page to make that the default.
How do I know the agent built the service correctly?
Give it input values with a result you know and let it test before publishing. Then open the service in the app and check the inputs, outputs and the summary on AI → Definition.
The agent says my plan does not allow another published service. What now?
Your plan's number of published services is reached. Unpublish another service in the app or upgrade, then ask the agent to publish again; the draft stays in the meantime.
Can the agent change a service after it is published?
Yes: texts, token protection, and inputs and outputs. It then publishes again, because callers get the old version until then.
Where do I see what the agent did?
Under Recent activity on the AI agents page, for example "Claude created the draft "Loan calculator"". The service itself appears in your service list.
Does building and testing use up my calls?
No. Creating, reading and testing a draft are not counted. Only calculations on the published service count.
As an agent, should I use the suggested parameters as they are?
Use them as a start. The suggestion is a guess from the labels and usually lists only the last result of a chain, so add the other outputs the user asked for and check each input.