Integrations
Partner data feed
Give a partner you choose — your ad agency, an analytics service — a read-only key to your booked orders, with an example request for their developer.
- 5 min read
- Checked against MoveBoard
- For owners & admins
On this page
The partner data feed lets a partner you choose — your ad agency, an analytics or reporting service — read your booked orders from their own system, with a key you make and can revoke at any time. It only reads: nothing can be changed through it.
It is off until you make a key. A company with no keys shares nothing.
Make a key
Go to Settings › Integrations › Partner data feed (company admins only).
- Under New key, type who it is for — for example Our ad agency (Google Ads).
- Pick the Branch it may read, or Every branch.
- Tick What it may read (see below). Phone and email are off unless you tick them.
- Leave Leads too off unless the partner also needs orders that were never booked.
- Press Make the key, then Copy. The key is shown only this once — MoveBoard keeps only a fingerprint of it. Send it to your partner privately, with the address under How your partner connects.
What a key reads
Always, for every order: the order number, its status, the status dates (created, first booked, booked, cancelled, and the whole status history), the branch, the move date, move type, service and size, the lead source, and your order flags.
What you tick:
- Quote, totals and payments — the quote range (and its middle), the estimate type, the final total of a completed job, what was paid, the deposit, and the currency (CAD for a Canadian branch).
- Ad tracking — the page the customer landed on, exactly as kept, with its UTM tags and Google click ids (gclid, gbraid, wbraid).
- Customer name and move addresses.
- Customer phone and Customer email — off unless you tick them.
Never, whatever is ticked: card or bank details, notes, documents, or anything about your staff.
Booked orders only (unless Leads too is on): every order that has ever been booked — so a cancelled booking stays in the feed, showing Cancelled and when. An order you archive or delete comes back as a bare removed line (number, status and dates only), so your partner knows it is gone.
Change or revoke a key
- Change — change its name or what it may read, then Save. (Save lights only when something changed.) The branch can't change: make a new key for another branch.
- Revoke — it stops working at once, for good. To rotate a key: make the new one, let your partner switch, then revoke the old one.
You can have up to 10 active keys.
The access log
Access log lists the last 100 requests (kept 90 days): when, which key, what was asked, how many orders were sent, and from which address. Each key also shows when it was last used.
For your partner's developer
The address: https://<your MoveBoard address>/api/partner/v1/orders — the page shows yours, ready to copy.
The key goes in a header: Authorization: Bearer <key> (or X-Api-Key: <key>). The key alone decides the company and branches.
An example request — bookings made in the last 35 days, 200 at a time:
curl -H "Authorization: Bearer mbpf_…" \
"https://<your MoveBoard address>/api/partner/v1/orders?booked_from=2026-09-22&booked_to=2026-10-27&page=1&page_size=200"Filters (all optional, combine freely):
booked_from,booked_to— booking activity in these days (the branch's days): every order booked in the window, whatever its status is now.updated_since— orders changed since this time (status, details or quote), e.g.2026-10-01T00:00:00Z.status_changed_from,status_changed_to— the last status change in these days.move_date_from,move_date_to— the first move day.status— e.g.BOOKED,CANCELLED,COMPLETED.branch_id— narrow to branches the key may read.page(from 1),page_size(up to 500, default 200),order(ascordescby order id; oldest first by default).
The answer:
{
"company": { "id": 123, "name": "…" },
"page": 1, "page_size": 200, "total": 1043, "total_pages": 6, "has_more": true,
"orders": [
{
"order_id": 5120, "order_number": "M-1042",
"status": "BOOKED", "status_label": "Booked", "removed": false, "completed": false,
"created_at": "2026-10-20T10:00:00-04:00",
"first_booked_at": "2026-10-25T17:30:00-04:00",
"booked_at": "2026-10-25T17:30:00-04:00",
"cancelled_at": null,
"status_history": [ { "status": "NEW", "at": "2026-10-20T10:00:00-04:00" }, … ],
"branch_id": 1, "branch_name": "Main",
"move_date": "2026-11-04", "service": "Local Move", "lead_source": "Website",
"currency": "CAD", "quote_min": 1200, "quote_max": 1500, "quote_middle": 1350,
"final_total": null, "total_paid": 200, "deposit_paid": 200,
"landing_url": "https://…?utm_source=google&gclid=…",
"utm_source": "google", "gclid": "…", "gbraid": null, "wbraid": null,
"customer_name": "A. Customer", "move_from": "12 Main St, Springfield, ON A1A 1A1", "move_to": "…"
}
]
}Times carry the branch's offset. Fields the key may not read are not in the answer at all.
Statuses are MoveBoard's: BOOKED, BOOKED_COMPLETED (every day of the job closed out), CANCELLED, POSTPONED, RESERVED (a deposit, not signed yet — not a booking), and the lead statuses. first_booked_at never changes once set.
Limits: 120 requests per 10 minutes per key. Too many gets 429 with a Retry-After.
The answers: 200 the page · 400 a filter it can't read (it says which) · 401 no key, or a revoked one · 403 a branch the key can't read · 429 too many · 503 try again in a few minutes.
Coming from the older order-summaries connection
A pipeline built on the older GET /api/moving/orders/summaries keeps working at that same address and in that shape (pageIndex, totalElements, pageElements, bookingDate passed twice for a window, estimatedQuoteRange, trackingCampaignUrl, serviceSummaries…). The only change: no sign-in — send the key as Authorization: Bearer <key> on every request; X-TenantID and X-BranchID are no longer needed (the key decides). Beside the old fields each row also has bookingDateUtc, statusUpdatedUtc, firstBookingDate/firstBookingDateUtc, cancelledDateUtc, statusHistory, googleClickId, depositPaid, finalTotal and currency. A cancelled booking now stays in its bookingDate window, showing Cancelled.
Google Ads
If your partner uploads your bookings to Google Ads, don't also switch on Google Ads in MoveBoard for the same Google Ads account — each booking would count twice.
Related guides
- IntegrationsGoogle AdsSend your booked moves from Google ad clicks to Google Ads, and take back the ones that cancel.
- IntegrationsSend leads by APIFor your web developer or a lead seller — sending leads into MoveBoard from another system, what a lead needs, and how duplicates and limits work.
- Leads & salesGoogle click IDs on leadsWhat MoveBoard keeps when a lead comes from a Google ad, and where you can read it.
- IntegrationsAI connections (MCP)Connect Claude, ChatGPT or another AI app to MoveBoard so it can answer questions about your company's data — and, if your company allows it, make changes you confirm — as you, with your permissions.
Still stuck? A person will help.
Open a ticket from Support inside MoveBoard, or email us — we usually reply within one business day.