Limited time discount Book Smarter This Christmas
Up to 50%Off

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.

Info Note
API endpoints are available only in Elite license plans. Using the API requires coding skills and is not covered by standard plugin support.

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, default visible
  • description (string); location description
  • address (string); location address
  • phone (string); location phone number
  • latitude (float); latitude, default 40.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

				
					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\"}}"
}'
				
			
				
					{
  "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

				
					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
}'
				
			
				
					{
  "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

				
					curl --location 'https://example-site.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/locations/11' \
--header 'Amelia: YOUR_API_KEY'
				
			
				
					{
  "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

				
					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'
				
			
				
					{
  "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

				
					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'
				
			
				
					{
  "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

				
					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'
				
			
				
					{
  "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\"}}"
    }
  }
}