• {{ user_data.coin }}
  • {{ user_data.usd }}

ONLYOFFICE Setup

Three quick steps. We host the ONLYOFFICE Docs server — you just plug in.

Your email hasn't verified yet!
Open your email →

1. Enable the engine.

WebOffice is a broker: our ONLYOFFICE Docs server runs on our side, so you don't need to host one. One click activates the Word-compatible engine on your account.

2. Create API keys for your apps.

Create one key per app — up to 20 active. Every import, save, and export is billed to the key owner. Leaked? Revoke just that key.

3. Download the JumpStart, claim coins, enjoy!

Click Here to download the JumpStart content, then paste one of your API keys from Step 2 where indicated. The cost is 1 Coin or US$ 0.01 per API Call. New users also get 1,000 Welcome Coins — claim below!

Free Coins!

1,000 Coins

Waiting for you — hit Claim Now below.

Already added to your balance. Enjoy!

OR

Bronze

US$ 100.00 (FREE 100 Coins)

Silver

US$ 500.00 (FREE 1,000 Coins)

Gold

US$ 1,000.00 (FREE 5,000 Coins)

Try it live — no download needed

Open the hosted editor with your account: upload a .docx, edit with full Word fidelity (paper, ruler, header/footer, paste from Word), export PDF. Your files stay on WebOffice storage, scoped to your account.

Documentation

Integrate ONLYOFFICE into your own web app — setup, access modes, API reference, and metering rules.

JumpStart setup — what to change

The JumpStart from Step 3 is a complete reference integration: a thin PHP backend plus a browser editor page. Nothing is hidden — you can replace it with your own stack and keep the same contract.

  1. Download and extract the JumpStart anywhere on your server.
  2. Create an API key in Step 2 and copy it (wo_live_…).
  3. Copy server_reference.php to server_local.php in the same folder, then edit only server_local.php:
Value What to put
WEBOFFICE_BASE https://dashboard.weboffice.tech — leave as-is on production
WEBOFFICE_API_KEY your wo_live_… key from Step 2
LAB_COOKIE '' — lab testing only; leave empty in production
  1. Serve the folder with PHP: php -S localhost:8000 (or any Apache/Nginx host with PHP).
  2. Open index.html. The OnlyOffice Documents/ folder (your file archive) is created automatically and protected by an auto-generated .htaccess.

Never edit server.php (re-extracting the zip replaces it) and never commit or share server_local.php — re-extraction never overwrites it. Full reference: README.md inside the zip.

Access & permission modes (URL parameters)

Every document is opened by URL, so share links are just links. The server stamps the URL from its own records after the first open, which means author cannot be spoofed by editing the address bar.

Mode URL example Viewer can…
Edit ?doc=Report.docx Full editor toolbar. Each changed save is metered (1 call).
View only ?doc=Report.docx&user=client@acme.com Read the document; toolbar hidden; only Export PDF remains.
Comment ?doc=Report.docx&user=client@acme.com&comment=1 Add and reply to comments; document content stays locked.
New document owner toolbar → New document Prompts for a file name, creates a blank .docx, autosaves under that name.
Parameter reference

doc file name · user viewer identity · comment=1 comment mode · author display only (ownership is decided server-side). Owner = the key holder who first opens uploads the document; everyone else is a viewer.

API reference

A. Your backend → WebOffice broker (auth: Authorization: Bearer wo_live_…)
Endpoint Body Returns Metered
POST /onlyoffice/token {file_url, filename, save_url, callback_url, as_user?, author?, comment?} {docs_base, config, token, save_token, dockey, readonly, comment_only} 1 call (import)
POST /onlyoffice/meter_save {event:"save", dockey, save_token, sha256, bytes, filename} {success, charged} 1 call per changed revision; identical content is free
POST /onlyoffice/upload multipart file (≤10 MB, .docx) {doc_id, name} free (staging)
POST /onlyoffice/export {doc_id, format:"pdf"} {file: base64} 1 call
GET /onlyoffice/files — document list free
B. Your JumpStart server.php actions
Action Method Purpose
config GET Build the editor session (params: doc, user, comment).
upload POST Store an uploaded .docx locally (name kept).
create POST Create a blank .docx server-side {name}.
files GET List local documents (JSON).
file GET Serve a document to the Docs server (requires ct token).
callback POST Docs server save → write locally → meter ping (requires ct).
export GET PDF export through the broker (1 call).
version GET Build self-check — compare with the README inside the zip.
C. Save flow (tenant storage)

1. Browser calls your ?action=config → your server calls WebOffice POST /onlyoffice/token with the key.
2. WebOffice returns {docs_base, config, token} → browser loads api.js from docs_base and starts new DocsAPI.DocEditor(el, {...config, token}).
3. The Docs server fetches the file from ?action=file&doc=…&ct=….
4. On save, the Docs server calls ?action=callback&ct=… → the file is written to your disk → your server pings /onlyoffice/meter_save.
5. Export PDF uses ?action=export&doc=…&format=pdf (1 charged call); blank pages are always free.

Security & metering rules

  • Your key never leaves the server — one key per app; revoke and rotate on any leak.
  • Documents are served only with a per-document ct token; the archive folder is deny-all via its auto-generated .htaccess.
  • The save callback only accepts the configured Docs server host (SSRF guard), and only with a valid ct.
  • Metering: 1 call on open (import) · 1 call per changed save (identical content is deduplicated by SHA-256) · 1 call per PDF export. Blank pages are free; an empty balance is denied with a message.
  • Your files stay on your server. WebOffice signs sessions, meters usage, and never stores your documents.