How do I manage locations with the Amelia API
Use the locations endpoints to create and manage locations, update details like address and coordinates, retrieve single or multiple locations, check delete impact, and delete locations when safe.
You can review all endpoints and examples in the Amelia API Postman collection.
How do I add a location with the Amelia API?
Use this endpoint to create a new location and optionally define address, phone number, map coordinates, and translations.
- Method: POST
- Path:
/locations
Base path
{{your_site_URL}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1
Authorization
- All Amelia endpoints use API key authorization via a request header named Amelia.
Required properties
- name (
string); location name
Other properties
- status (
string); possible values:visible,hidden,disabled, defaultvisible - description (
string); location description - address (
string); location address - phone (
string); location phone number - latitude (
float); latitude, default40.7484405 - longitude (
float); longitude, default-73.9878531 - pictureFullPath (
string); full image path - pictureThumbPath (
string); thumbnail image path - pin (
string); pin icon path, default pin icons are located at/public/img/pins/orange.png,/public/img/pins/green.png,/public/img/pins/purple.png,/public/img/pins/red.png - translations (
string); JSON encoded translations for name and description
Example
Request
curl --location 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data '{
"status": "visible",
"name": "Downtown studio",
"description": "Main location for in-person appointments.",
"address": "169 W North Ave, Northlake, IL, USA",
"phone": "+12025550123",
"latitude": 41.9068764,
"longitude": -87.8962968,
"pictureFullPath": "",
"pictureThumbPath": "",
"pin": "https://example-site.com/wp-content/plugins/amelia-plugin/public/img/pins/orange.png",
"translations": "{\"name\":{\"fr_FR\":\"studio du centre-ville\"},\"description\":{\"fr_FR\":\"lieu principal pour les rendez-vous en personne\",\"fr_FRHtml\":\"lieu principal pour les rendez-vous en personne\"}}"
}'
Response
{
"message": "Successfully added location.",
"data": {
"location": {
"id": 11,
"status": "visible",
"name": "Downtown studio",
"description": "Main location for in-person appointments.",
"address": "169 W North Ave, Northlake, IL, USA",
"phone": "+12025550123",
"latitude": 41.9068764,
"longitude": -87.8962968,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": "https://example-site.com/wp-content/plugins/amelia-plugin/public/img/pins/orange.png",
"translations": "{\"name\":{\"fr_FR\":\"studio du centre-ville\"},\"description\":{\"fr_FR\":\"lieu principal pour les rendez-vous en personne\",\"fr_FRHtml\":\"lieu principal pour les rendez-vous en personne\"}}"
}
}
}
How do I update a location with the Amelia API?
Use this endpoint to update location details by sending only the properties you want to change.
- Method: POST
- Path:
/locations/{{location_id}}
Base path
{{your_site_URL}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1
Authorization
- All Amelia endpoints use API key authorization via a request header named Amelia.
Optional properties
- name (
string); location name - status (
string);visible,hidden,disabled - description (
string); location description - address (
string); location address - phone (
string); location phone number - latitude (
float); latitude - longitude (
float); longitude - pictureFullPath (
string); full image path - pictureThumbPath (
string); thumbnail image path - pin (
string); pin icon path - translations (
string); JSON encoded translations
Example
Request
curl --location 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations/11' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data '{
"address": "179 W North Ave, Northlake, IL, USA",
"latitude": 41.9086589,
"longitude": -87.9121619,
"pin": null,
"translations": null
}'
Response
{
"message": "Successfully updated location.",
"data": {
"location": {
"id": 11,
"status": "visible",
"name": "Downtown studio",
"description": "Main location for in-person appointments.",
"address": "179 W North Ave, Northlake, IL, USA",
"phone": "+12025550123",
"latitude": 41.9086589,
"longitude": -87.9121619,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": "https://example-site.com/wp-content/plugins/amelia-plugin/public/img/pins/orange.png",
"translations": null
}
}
}
How do I retrieve a location with the Amelia API?
Use this endpoint to retrieve details for a single location.
- Method: GET
- Path:
/locations/{{location_id}}
Base path
{{your_site_URL}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1
Authorization
- All Amelia endpoints use API key authorization via a request header named Amelia.
Example
Request
curl --location 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations/11' \
--header 'Amelia: YOUR_API_KEY'
Response
{
"message": "Successfully retrieved location.",
"data": {
"location": {
"id": 11,
"status": "visible",
"name": "Downtown studio",
"description": "Main location for in-person appointments.",
"address": "179 W North Ave, Northlake, IL, USA",
"phone": "+12025550123",
"latitude": 41.908659,
"longitude": -87.912162,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": "https://example-site.com/wp-content/plugins/amelia-plugin/public/img/pins/orange.png",
"translations": "{\"name\":{\"fr_FR\":\"studio du centre-ville\"},\"description\":{\"fr_FR\":\"lieu principal pour les rendez-vous en personne\",\"fr_FRHtml\":\"lieu principal pour les rendez-vous en personne\"}}"
}
}
}
How do I check whether a location can be deleted safely with the Amelia API?
Use this endpoint to check whether a location has future appointments that would prevent safe deletion.
- Method: GET
- Path:
/locations/effect/{{location_id}}
Base path
{{your_site_URL}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1
Authorization
- All Amelia endpoints use API key authorization via a request header named Amelia.
Example
Request
curl --location 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations/effect/11' \
--header 'Amelia: YOUR_API_KEY'
Response
{
"message": "Successfully retrieved message.",
"data": {
"valid": true,
"message": ""
}
}
How do I retrieve locations with the Amelia API?
Use this endpoint to retrieve a list of locations. You can paginate and sort the results using query parameters.
- Method: GET
- Path:
/locations
Base path
{{your_site_URL}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1
Authorization
- All Amelia endpoints use API key authorization via a request header named Amelia.
Optional query parameters
- page (
integer); page number - sort (
string); sorting order, possible values:name,-name,address,-address
Example
Request
curl --location 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations&page=1&sort=name' \
--header 'Amelia: YOUR_API_KEY'
Response
{
"message": "Successfully retrieved locations.",
"data": {
"locations": [
{
"id": 11,
"status": "visible",
"name": "Downtown studio",
"description": "Main location for in-person appointments.",
"address": "179 W North Ave, Northlake, IL, USA",
"phone": "+12025550123",
"latitude": 41.908659,
"longitude": -87.912162,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": "https://example-site.com/wp-content/plugins/amelia-plugin/public/img/pins/orange.png",
"translations": "{\"name\":{\"fr_FR\":\"studio du centre-ville\"},\"description\":{\"fr_FR\":\"lieu principal pour les rendez-vous en personne\",\"fr_FRHtml\":\"lieu principal pour les rendez-vous en personne\"}}"
},
{
"id": 4,
"status": "visible",
"name": "Uptown studio",
"description": "Secondary location for in-person appointments.",
"address": "169 W North Ave, Northlake, IL, USA",
"phone": "+12025550124",
"latitude": 41.906876,
"longitude": -87.896297,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": null,
"translations": null
},
{
"id": 2,
"status": "visible",
"name": "Belgrade office",
"description": "",
"address": "Velisava Vulovića 18, Belgrade, Serbia",
"phone": "",
"latitude": 44.767476,
"longitude": 20.455081,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": "",
"translations": null
}
],
"countFiltered": 5,
"countTotal": 5
}
}
How do I delete a location with the Amelia API?
Use this endpoint to delete a location when it is safe to do so.
- Method: POST
- Path:
/locations/delete/{{location_id}}
Base path
{{your_site_URL}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1
Authorization
- All Amelia endpoints use API key authorization via a request header named Amelia.
Example
Request
curl --location --request POST 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations/delete/11' \
--header 'Amelia: YOUR_API_KEY'
Response
{
"message": "Successfully deleted location.",
"data": {
"location": {
"id": 11,
"status": "visible",
"name": "Downtown studio",
"description": "Main location for in-person appointments.",
"address": "179 W North Ave, Northlake, IL, USA",
"phone": "+12025550123",
"latitude": 41.908659,
"longitude": -87.912162,
"pictureFullPath": null,
"pictureThumbPath": null,
"pin": "https://example-site.com/wp-content/plugins/amelia-plugin/public/img/pins/orange.png",
"translations": "{\"name\":{\"fr_FR\":\"studio du centre-ville\"},\"description\":{\"fr_FR\":\"lieu principal pour les rendez-vous en personne\",\"fr_FRHtml\":\"lieu principal pour les rendez-vous en personne\"}}"
}
}
}