Manage your screens from your own software
With the OmrarCast REST API you can pair, group and manage screens; create media, playlists, widgets and template designs; update price boards and product prices; and download reports. Everything you do in the dashboard, you can do from your own system with an API key.
How it works
- Create an API key under Settings in the dashboard. You give the key read, content-write, screen-command, screen-management or product and price permissions.
- Send the key in the
Authorization: Bearerheader with each request. Responses are JSON. - Every call is written to the audit log, and you can revoke a key at any time.
- Signed notifications (webhooks) are sent to your system when a screen goes offline or online, is paired or deleted, acknowledges a command, when media finishes processing and when prices change.
Basic API access is included in every plan, including the free trial. For high-volume use, write to us.
curl https://omrarcast.com/api/public/v1/screens \
-H "Authorization: Bearer $OMRARCAST_API_KEY" \
-H "Accept: application/json"
curl -X POST https://omrarcast.com/api/public/v1/playlists/7/assign \
-H "Authorization: Bearer $OMRARCAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": [12, 14]}'
curl -X POST https://omrarcast.com/api/public/v1/products/adjust \
-H "Authorization: Bearer $OMRARCAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"percent": 10, "category": "Burgers", "rounding": "1", "dry_run": true}'
Create your key in the dashboard
- Open API and integrations from the dashboard's left-hand menu.
- Enter a Key name, choose what the key may do under Permissions and press Create key.
- The key is shown only once. Use Copy and store it somewhere safe; you can revoke it from the same page whenever you need to.
Endpoints
Open a group to see its endpoints. Body fields, responses, required permissions and error codes are in the OpenAPI reference. Base URL: https://omrarcast.com/api/public/v1
ScreensPairing, renaming, deleting, commands, schedules, content copy, price list
/screensLists screens and their status/screens/{id}Details, what is playing now, assignments/screens/{id}Renames a screen/screens/{id}Deletes a screen from the account/screens/pairAdds a screen with the pairing code it shows/screens/{id}/commandsRefresh, sync, identify, brightness/screens/bulk/commandSends one command to up to 500 screens/screens/bulk/deleteDeletes many screens/screens/bulk/groupAdds many screens to a group/screens/bulk/playlistAssigns a playlist to many screens/screens/distributeDistributes playlists across screens in order or split/screens/{id}/playlistAssigns or clears a screen's playlist/screens/{id}/schedulesAdds a playlist tied to days and hours/screens/{id}/schedules/{assignment}Deletes a scheduled rule/screens/{id}/copy-contentCopies content to other screens/screens/{id}/price-listSets the screen's price listNetworksList and name the networks your screens connect through
/networksLists networks and the screens on them/networks/{key}Names a network or clears its nameGroupsGroup tree, membership, playlists, distribution, schedules, price list
/groupsLists groups/groupsCreates a group/groups/{id}A group with its children, screens and settings/groups/{id}Renames or moves a group/groups/{id}Deletes a group and releases its screens/groups/{id}/membersAdds screens to a group/groups/{id}/members/{screen}Removes a screen from a group/groups/{id}/playlistAssigns a playlist to a group/groups/{id}/distributeDistributes playlists across the group's screens/groups/{id}/schedulesLists a group's schedule rules/groups/{id}/schedulesAdds a playlist tied to days and hours/groups/{id}/schedules/{assignment}Deletes a scheduled rule/groups/{id}/price-listSets the group's price listMediaImage and video library
/mediaLists and searches the media library/mediaUploads an image or video/media/{id}Media details/media/{id}Deletes media/media/bulk-deleteDeletes up to 500 media itemsPlaylistsCreate, order, add widgets, assign
/playlistsLists playlists/playlistsCreates a playlist/playlists/{id}A playlist and its items/playlists/{id}Updates a playlist and its order/playlists/{id}Deletes a playlist/playlists/{id}/duplicateDuplicates a playlist/playlists/{id}/itemsAppends media/playlists/{id}/items/{item}Removes a single item/playlists/{id}/widgetsAppends a widget/playlists/{id}/assignAssigns a playlist to screensWidgetsClock, weather, currency, ticker, web page, RSS, YouTube, price board
/widgets/typesWidget types and their settings fields/widgetsLists widgets/widgetsCreates a widget/widgets/{id}A widget's settings and where it is used/widgets/{id}Updates a widget/widgets/{id}Deletes a widgetTemplate designsVisual designs built from ready-made templates
/templatesTemplates, their fields and sizes/templates/designsLists saved designs/templates/designsSaves a design from a template and uploads its image/templates/designs/{id}A design with its data/templates/designs/{id}Updates a design/templates/designs/{id}Deletes a designContent requestsManaged service: change and design requests
/requestsLists requests and remaining allowances/requestsOpens a content change or design request/requests/{id}A request's status history and files/requests/{id}/approveApproves a prepared design/requests/{id}/revisionAsks for a design revisionPrice boardsPrice boxes on top of a menu image
/price-boardsLists boards/price-boardsCreates a board from a menu image and price boxes/price-boards/{id}A board, its boxes and current price texts/price-boards/{id}Updates a board/price-boards/{id}Deletes a board/price-boards/{id}/targetsPlaylists, screens and groups a board can be sent to/price-boards/{id}/sendAdds a board to a playlist, screen or groupProducts and pricesCatalog, price lists, history, bulk increase and discount
/productsLists and searches products/productsBulk-updates product prices (POS sync)/products/adjustBulk percentage increase or discount; supports a preview/products/{code}A product's details/products/{code}Updates a product or its price in a price list/products/{code}Deletes a product/products/{code}/historyA product's price historyAccount and reportsPlan, usage and proof-of-play records
/meAccount, plan and usage/reports/playbacksProof-of-play records/reports/playbacks/exportDownloads proof-of-play as CSVWebhook events
Events arrive as a signed POST at the address you set in the dashboard; verify the signature with the X-OmrarCast-Signature header. Each event's payload schema is in the webhooks section of the OpenAPI reference.
screen.offlineA screen stopped reportingscreen.onlineA screen is back onlinescreen.pairedA new screen was pairedscreen.deletedA screen was deleted from the accountcommand.ackedA screen acknowledged a commandmedia.readyMedia was processed and is readymedia.failedMedia could not be processedproducts.prices_changedProduct prices changed; changes are batched into one eventStart your integration today
Try OmrarCast free for 30 days, create an API key in the dashboard and send your first request in minutes. Contact us for high-volume use.