Update a Location
curl --request POST \
--url https://api.framen.com/vendor/{org_token}/locations/{location_id} \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"venue_type_id": "<string>",
"lat": 123,
"long": 123,
"opening_168": {},
"visitors_7": {},
"status": "<string>",
"available_for_ads": true,
"archived": true,
"email": "<string>",
"phone": "<string>"
}
'import requests
url = "https://api.framen.com/vendor/{org_token}/locations/{location_id}"
payload = {
"title": "<string>",
"venue_type_id": "<string>",
"lat": 123,
"long": 123,
"opening_168": {},
"visitors_7": {},
"status": "<string>",
"available_for_ads": True,
"archived": True,
"email": "<string>",
"phone": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
venue_type_id: '<string>',
lat: 123,
long: 123,
opening_168: {},
visitors_7: {},
status: '<string>',
available_for_ads: true,
archived: true,
email: '<string>',
phone: '<string>'
})
};
fetch('https://api.framen.com/vendor/{org_token}/locations/{location_id}', 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}/locations/{location_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'venue_type_id' => '<string>',
'lat' => 123,
'long' => 123,
'opening_168' => [
],
'visitors_7' => [
],
'status' => '<string>',
'available_for_ads' => true,
'archived' => true,
'email' => '<string>',
'phone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.framen.com/vendor/{org_token}/locations/{location_id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"venue_type_id\": \"<string>\",\n \"lat\": 123,\n \"long\": 123,\n \"opening_168\": {},\n \"visitors_7\": {},\n \"status\": \"<string>\",\n \"available_for_ads\": true,\n \"archived\": true,\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.framen.com/vendor/{org_token}/locations/{location_id}")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"venue_type_id\": \"<string>\",\n \"lat\": 123,\n \"long\": 123,\n \"opening_168\": {},\n \"visitors_7\": {},\n \"status\": \"<string>\",\n \"available_for_ads\": true,\n \"archived\": true,\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.framen.com/vendor/{org_token}/locations/{location_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"venue_type_id\": \"<string>\",\n \"lat\": 123,\n \"long\": 123,\n \"opening_168\": {},\n \"visitors_7\": {},\n \"status\": \"<string>\",\n \"available_for_ads\": true,\n \"archived\": true,\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyUpdate a Location
Update an existing location’s details.
POST
/
vendor
/
{org_token}
/
locations
/
{location_id}
Update a Location
curl --request POST \
--url https://api.framen.com/vendor/{org_token}/locations/{location_id} \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"venue_type_id": "<string>",
"lat": 123,
"long": 123,
"opening_168": {},
"visitors_7": {},
"status": "<string>",
"available_for_ads": true,
"archived": true,
"email": "<string>",
"phone": "<string>"
}
'import requests
url = "https://api.framen.com/vendor/{org_token}/locations/{location_id}"
payload = {
"title": "<string>",
"venue_type_id": "<string>",
"lat": 123,
"long": 123,
"opening_168": {},
"visitors_7": {},
"status": "<string>",
"available_for_ads": True,
"archived": True,
"email": "<string>",
"phone": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
venue_type_id: '<string>',
lat: 123,
long: 123,
opening_168: {},
visitors_7: {},
status: '<string>',
available_for_ads: true,
archived: true,
email: '<string>',
phone: '<string>'
})
};
fetch('https://api.framen.com/vendor/{org_token}/locations/{location_id}', 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}/locations/{location_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'venue_type_id' => '<string>',
'lat' => 123,
'long' => 123,
'opening_168' => [
],
'visitors_7' => [
],
'status' => '<string>',
'available_for_ads' => true,
'archived' => true,
'email' => '<string>',
'phone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.framen.com/vendor/{org_token}/locations/{location_id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"venue_type_id\": \"<string>\",\n \"lat\": 123,\n \"long\": 123,\n \"opening_168\": {},\n \"visitors_7\": {},\n \"status\": \"<string>\",\n \"available_for_ads\": true,\n \"archived\": true,\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.framen.com/vendor/{org_token}/locations/{location_id}")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"venue_type_id\": \"<string>\",\n \"lat\": 123,\n \"long\": 123,\n \"opening_168\": {},\n \"visitors_7\": {},\n \"status\": \"<string>\",\n \"available_for_ads\": true,\n \"archived\": true,\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.framen.com/vendor/{org_token}/locations/{location_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"venue_type_id\": \"<string>\",\n \"lat\": 123,\n \"long\": 123,\n \"opening_168\": {},\n \"visitors_7\": {},\n \"status\": \"<string>\",\n \"available_for_ads\": true,\n \"archived\": true,\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyUpdate a Location
Update an existing location’s details. All body parameters are optional — only include the fields you want to change.string
required
Your organization token (e.g.,
Org_4KmTqZnWpLx).string
required
The unique identifier of the location to update.
string
Display name of the location.
string
Must be a level 2 venue type ID from the Venue Types endpoint.
number
Latitude coordinate (WGS84, range: -90 to 90).
number
Longitude coordinate (WGS84, range: -180 to 180).
boolean[168]
Hourly opening schedule for one week (168 booleans). Index 0 = Monday 00:00.
int[7]
Daily visitor counts, Monday through Sunday.
string
Location status. Can only be changed via
DRAFT -> REVIEW. You cannot set it to APPROVED yourself.boolean
Whether the location is available for ad campaigns. Cannot be set while status is
DRAFT or REVIEW.boolean
Whether the location is archived.
string
Contact email for the location.
string
Contact phone number for the location.
If the location status is
APPROVED and you update venue_type_id, lat, or long, the status will revert to REVIEW and must be re-approved by FRAMEN. Campaign delivery may be affected.Example Request
curl -X POST https://api.framen.com/vendor/Org_4KmTqZnWpLx/locations/Loc_f9FxuWDTfzy \
-H "Content-Type: application/json" \
-d '{
"title": "Berlin Hauptbahnhof - West Wing",
"visitors_7": [600, 700, 800, 900, 1000, 1100, 500]
}'
Last modified on April 17, 2026
⌘I