List Venue Types
curl --request GET \
--url https://api.framen.com/vendor/{org_token}/venue_typesimport requests
url = "https://api.framen.com/vendor/{org_token}/venue_types"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.framen.com/vendor/{org_token}/venue_types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.framen.com/vendor/{org_token}/venue_types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.framen.com/vendor/{org_token}/venue_types"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.framen.com/vendor/{org_token}/venue_types")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.framen.com/vendor/{org_token}/venue_types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyList Venue Types
Retrieve all available venue types.
GET
/
vendor
/
{org_token}
/
venue_types
List Venue Types
curl --request GET \
--url https://api.framen.com/vendor/{org_token}/venue_typesimport requests
url = "https://api.framen.com/vendor/{org_token}/venue_types"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.framen.com/vendor/{org_token}/venue_types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.framen.com/vendor/{org_token}/venue_types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.framen.com/vendor/{org_token}/venue_types"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.framen.com/vendor/{org_token}/venue_types")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.framen.com/vendor/{org_token}/venue_types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyList Venue Types
Retrieve all available venue types. Venue types classify locations and screens into a 3-level hierarchy:- Level 1 — Category (not selectable, e.g., “Retail”)
- Level 2 — Venue type (selectable, e.g., “Grocery”)
- Level 3 — Sub-venue type (selectable, e.g., “Shop Entrance (Grocery)”)
id values returned here are used as venue_type_id in both the Screens and Locations endpoints.
Constraint: Locations must use a level 2 venue_type_id. Screens must use a venue_type_id that is either the same as their parent Location’s (level 2) or one of its children (level 3).
string
required
Your organization token (e.g.,
Org_4KmTqZnWpLx).Response
Returns an array of venue type objects.| Field | Type | Description |
|---|---|---|
label | string | Display name (e.g., “Grocery”) |
id | string | Venue type ID (used as venue_type_id in Screens and Locations) |
parent_id | string | null | ID of the parent venue type. null for level 1 |
level | integer | 1 = category, 2 = venue type, 3 = sub-venue type |
selectable | boolean | Whether this type can be assigned to a Location or Screen |
description | string | null | Human-readable description of the venue type |
Example Request
curl -X GET https://api.framen.com/vendor/Org_4KmTqZnWpLx/venue_types
Example Response
[
{
"label": "Retail",
"id": "2",
"parent_id": null,
"level": 1,
"selectable": false,
"description": "These dynamic screens are strategically placed in key locations throughout shopping centers, malls, and retail districts."
},
{
"label": "Grocery",
"id": "203",
"parent_id": "2",
"level": 2,
"selectable": true,
"description": "Digital signage is dispersed throughout supermarkets, you'll often find screens in direct view of shoppers, above cash points, at the entrance/exit, within the shelves, in the aisles and on the walls."
},
{
"label": "Shop Entrance (Grocery)",
"id": "20301",
"parent_id": "203",
"level": 3,
"selectable": true,
"description": "As shoppers enter the supermarket, there'll usually be medium to large sized screens close to the entrance, so consumers have a prominent view of ads."
},
{
"label": "Check Out (Grocery)",
"id": "20302",
"parent_id": "203",
"level": 3,
"selectable": true,
"description": "The till areas are where consumers pay for their purchases, and here you'll find display monitors close to the bagging area or above the self-service check out points."
}
]
Last modified on April 19, 2026