Developer
Robomap API
HTTPS JSON API for the Robomap platform: authentication, on-demand services, devices, workspace data, account management, and integrations.
Overview
Production base URL: https://api.robomap.ai
Web app proxy: https://app.robomap.ai/api/ rewrites to the same backend for same-origin browser requests.
Machine API prefix: https://api.robomap.ai/api/ for Passport-protected integrations.
All requests use HTTPS. JSON is returned unless noted otherwise.
Authentication
The API supports three access patterns:
- Browser session β cookie-based login via
POST /auth/loginfor the Angular app. - Bearer access token β returned by login/OAuth and sent as
Authorization: Bearer <token>. - Passport OAuth 2.0 β machine clients under
/api/oauth/*and/api/devices,/api/data.
Authorization: Bearer YOUR_ACCESS_TOKEN
Social sign-in entry points:
| Method | Endpoint | Description |
|---|---|---|
| GET | /auth/google |
Redirect to Google OAuth. Optional ?returnUrl=/home. |
| GET | /auth/callback |
Google OAuth callback. |
| GET | /auth/apple |
Redirect to Apple Sign In. |
| POST | /auth/apple/callback |
Apple OAuth callback (form_post). |
Public endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/login |
Email/password login. Returns access_token and user payload. |
| POST | /auth/register |
Create a user or business account. |
| POST | /auth/logout |
End the current browser session. |
| GET | /auth/me |
Current authenticated user (session). |
| GET | /auth/oauth/bootstrap |
Resolve a bearer token to a user after social login. |
| GET | /utilities/countries |
Country list for registration forms. |
| GET | /utilities/phone-prefixes |
International phone prefixes. |
| GET | /on-demand-services/catalog |
Public service categories and catalog metadata. |
| POST | /assistant/chat |
Platform assistant chat endpoint. |
| GET | /api/ping |
Health probe. Returns empty JSON object. |
| GET | /api/check |
Extended API status check. |
| POST | /administration/external-businesses/import |
Import unclaimed businesses (is_external, no user account). JSON body { "businesses": [...] }. Optional X-Api-Key. Alias: POST /external-businesses/import. |
External businesses: POST https://api.robomap.ai/administration/external-businesses/import creates organizations with is_external=true and no owner user. No login required. If EXTERNAL_BUSINESS_IMPORT_API_KEY is set, send it as X-Api-Key (or Authorization: Bearer <key>). Accepts { "businesses": [...] }, { "contacts": [...] }, { "companies": [...] }, or a bare JSON array (max 500). Optional update_existing defaults to true. Claimed (non-external) orgs with a matching VAT are never overwritten. Rate limit: 30/min.
Example: import external businesses
curl -X POST https://api.robomap.ai/administration/external-businesses/import \
-H "Content-Type: application/json" \
-d '{"businesses":[{"name":"Example Robotics SL","city":"Barcelona","country":"ES","address":"Carrer Example 1","description":"External business. Not a registered Robomap account."}],"update_existing":true}'
Authenticated session API
Requires a logged-in browser session or valid bearer token. Base path: https://api.robomap.ai
On-demand services
| Method | Endpoint | Description |
|---|---|---|
| GET | /on-demand-services/map | Map data for active service activity. |
| GET | /on-demand-services/requests | List service requests for the current user. |
| POST | /on-demand-services/requests | Create a new on-demand service request. |
| GET | /on-demand-services/business/available | Requests available to business providers. |
| GET | /on-demand-services/business/assignments | Assignments claimed by the business. |
| POST | /on-demand-services/business/requests/{id}/claim | Claim a request. |
Devices and workspace data
| Method | Endpoint | Description |
|---|---|---|
| GET | /devices | List devices. |
| POST | /devices | Create a device. |
| PUT | /devices/{id} | Update a device. |
| DELETE | /devices/{id} | Delete a device. |
| GET | /data | List workspace data records. |
| POST | /data | Create a data record. |
| PUT | /data/{id} | Update a data record. |
| DELETE | /data/{type}/{id} | Delete a typed data record. |
| GET | /settings | Read workspace settings. |
| POST | /settings | Update workspace settings. |
Account, notifications, and administration
| Method | Endpoint | Description |
|---|---|---|
| GET | /account/getuserdata | Current profile data. |
| POST | /account/user-profile | Update profile fields. |
| GET | /account/business-profile | Business profile for provider accounts. |
| GET | /account/plans | Subscription plan catalog. |
| GET | /notifications | In-app notifications. |
| GET | /administration/users | Organization user list. |
| GET | /administration/organizations | Organizations for the active account. |
Machine API
Passport-protected integrations use the /api prefix.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/oauth/token | Issue an OAuth access token. |
| POST | /api/oauth/clients | Register an OAuth client. |
| POST | /api/devices | Create a device via API token. |
| POST | /api/data | Ingest workspace data via API token. |
Robomap CRM contacts
Contact create/import lives on the CRM service
(https://crm.robomap.ai). Authenticate with a Robomap
bearer token from POST /auth/login on
https://api.robomap.ai. If the custom hostname is down,
use the Azure ingress host
robomap-crm.victoriousbush-08a428e1.francecentral.azurecontainerapps.io.
Docs: GET https://crm.robomap.ai/api/docs
| Method | Endpoint | Description |
|---|---|---|
| GET | https://crm.robomap.ai/api/contacts |
List contacts for the authenticated owner. Query: city, q, limit. |
| POST | https://crm.robomap.ai/api/contacts |
Create one contact (name required; optional email/phone/company/title/city/country/address/notes/source). |
| POST | https://crm.robomap.ai/api/contacts/import |
Bulk import { "contacts": [ ... ] } (max 500). Use for Barcelona contact packs under the login account. |
OAuth 2.0
Robomap uses Laravel Passport for machine-to-machine access. Token and client management routes are available under /oauth/* and /api/oauth/*.
curl -X POST https://api.robomap.ai/api/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
Example: login
curl -X POST https://api.robomap.ai/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"your-password"}'
Example: countries
curl https://api.robomap.ai/utilities/countries