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: Bearer header 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.

List screenscurl
curl https://omrarcast.com/api/public/v1/screens \
  -H "Authorization: Bearer $OMRARCAST_API_KEY" \
  -H "Accept: application/json"
Assign a playlist to screenscurl
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]}'
Preview a bulk price increasecurl
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

  1. Open API and integrations from the dashboard's left-hand menu.
  2. Enter a Key name, choose what the key may do under Permissions and press Create key.
  3. 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.

Create an API key

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
GET/screensLists screens and their status
GET/screens/{id}Details, what is playing now, assignments
PATCH/screens/{id}Renames a screen
DELETE/screens/{id}Deletes a screen from the account
POST/screens/pairAdds a screen with the pairing code it shows
POST/screens/{id}/commandsRefresh, sync, identify, brightness
POST/screens/bulk/commandSends one command to up to 500 screens
POST/screens/bulk/deleteDeletes many screens
POST/screens/bulk/groupAdds many screens to a group
POST/screens/bulk/playlistAssigns a playlist to many screens
POST/screens/distributeDistributes playlists across screens in order or split
POST/screens/{id}/playlistAssigns or clears a screen's playlist
POST/screens/{id}/schedulesAdds a playlist tied to days and hours
DELETE/screens/{id}/schedules/{assignment}Deletes a scheduled rule
POST/screens/{id}/copy-contentCopies content to other screens
PUT/screens/{id}/price-listSets the screen's price list
NetworksList and name the networks your screens connect through
GET/networksLists networks and the screens on them
PUT/networks/{key}Names a network or clears its name
GroupsGroup tree, membership, playlists, distribution, schedules, price list
GET/groupsLists groups
POST/groupsCreates a group
GET/groups/{id}A group with its children, screens and settings
PUT/groups/{id}Renames or moves a group
DELETE/groups/{id}Deletes a group and releases its screens
POST/groups/{id}/membersAdds screens to a group
DELETE/groups/{id}/members/{screen}Removes a screen from a group
POST/groups/{id}/playlistAssigns a playlist to a group
POST/groups/{id}/distributeDistributes playlists across the group's screens
GET/groups/{id}/schedulesLists a group's schedule rules
POST/groups/{id}/schedulesAdds a playlist tied to days and hours
DELETE/groups/{id}/schedules/{assignment}Deletes a scheduled rule
PUT/groups/{id}/price-listSets the group's price list
MediaImage and video library
GET/mediaLists and searches the media library
POST/mediaUploads an image or video
GET/media/{id}Media details
DELETE/media/{id}Deletes media
POST/media/bulk-deleteDeletes up to 500 media items
PlaylistsCreate, order, add widgets, assign
GET/playlistsLists playlists
POST/playlistsCreates a playlist
GET/playlists/{id}A playlist and its items
PUT/playlists/{id}Updates a playlist and its order
DELETE/playlists/{id}Deletes a playlist
POST/playlists/{id}/duplicateDuplicates a playlist
POST/playlists/{id}/itemsAppends media
DELETE/playlists/{id}/items/{item}Removes a single item
POST/playlists/{id}/widgetsAppends a widget
POST/playlists/{id}/assignAssigns a playlist to screens
WidgetsClock, weather, currency, ticker, web page, RSS, YouTube, price board
GET/widgets/typesWidget types and their settings fields
GET/widgetsLists widgets
POST/widgetsCreates a widget
GET/widgets/{id}A widget's settings and where it is used
PUT/widgets/{id}Updates a widget
DELETE/widgets/{id}Deletes a widget
Template designsVisual designs built from ready-made templates
GET/templatesTemplates, their fields and sizes
GET/templates/designsLists saved designs
POST/templates/designsSaves a design from a template and uploads its image
GET/templates/designs/{id}A design with its data
PUT/templates/designs/{id}Updates a design
DELETE/templates/designs/{id}Deletes a design
Content requestsManaged service: change and design requests
GET/requestsLists requests and remaining allowances
POST/requestsOpens a content change or design request
GET/requests/{id}A request's status history and files
POST/requests/{id}/approveApproves a prepared design
POST/requests/{id}/revisionAsks for a design revision
Price boardsPrice boxes on top of a menu image
GET/price-boardsLists boards
POST/price-boardsCreates a board from a menu image and price boxes
GET/price-boards/{id}A board, its boxes and current price texts
PUT/price-boards/{id}Updates a board
DELETE/price-boards/{id}Deletes a board
GET/price-boards/{id}/targetsPlaylists, screens and groups a board can be sent to
POST/price-boards/{id}/sendAdds a board to a playlist, screen or group
Products and pricesCatalog, price lists, history, bulk increase and discount
GET/productsLists and searches products
PUT/productsBulk-updates product prices (POS sync)
POST/products/adjustBulk percentage increase or discount; supports a preview
GET/products/{code}A product's details
PATCH/products/{code}Updates a product or its price in a price list
DELETE/products/{code}Deletes a product
GET/products/{code}/historyA product's price history
Account and reportsPlan, usage and proof-of-play records
GET/meAccount, plan and usage
GET/reports/playbacksProof-of-play records
GET/reports/playbacks/exportDownloads proof-of-play as CSV

Webhook 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.

POSTscreen.offlineA screen stopped reporting
POSTscreen.onlineA screen is back online
POSTscreen.pairedA new screen was paired
POSTscreen.deletedA screen was deleted from the account
POSTcommand.ackedA screen acknowledged a command
POSTmedia.readyMedia was processed and is ready
POSTmedia.failedMedia could not be processed
POSTproducts.prices_changedProduct prices changed; changes are batched into one event

Start 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.