RESTful API

The what3words RESTful API gives you programmatic access to convert a 3 word address to coordinates (forward geocoding), to convert coordinates to a 3 word address (reverse geocoding), to obtain suggestions based on a full or partial 3 word address (AutoSuggest, Voice AutoSuggest and StandardBlend), to obtain a geographically bounded section of the 3m x 3m what3words grid and to determine the languages that the API currently supports.

Version Information

This page describes version 2.2.0 of the what3words RESTful API; this is the latest version.

Migrating to API v2

Overview

Get Started

Before you get started, you'll need to register; this will give you a unique key which is needed for using the API. Check your email Inbox and once you receive your sign up email, just validate your account and you'll be ready to dive into the what3words API.

API Endpoints

All API resources are accessed from the https://api.what3words.com/v2 endpoint, which supports SSL only. Accessing any API resource via vanilla HTTP will return an HTTP status of 400 Bad Request in the response headers.

Authentication

All calls to the what3words API must be authenticated by a valid API key; this can be specified either as a URL query parameter or as an HTTP request header. If an invalid API key is passed or if the API key is missing, an HTTP status of 401 Unauthorized will be returned in both the response headers and in the response status field.

A valid API key can be passed by the key query parameter, in the form key=api-key. If no key is provided as a query parameter, the key must be passed as a request header in the form X-Api-Key: [API-KEY].

Supported HTTP Methods

All resources on the what3words API support HTTP GET only; if an attempt is made to access the API using any other method, an HTTP status of 405 Not allowed will be returned in both the response headers and in the response status field.

CORS Headers

All what3words API resources support Cross-Origin Resource Sharing or CORS, which allows Javascript requests to be made to the API that span domain boundaries. Each response from the what3words API will contain the Access-Control-Allow-Origin: * header, that enables CORS.

JSONP Responses

Where it makes sense to do so, all what3words API resources support returning their responses using JSONP (aka JSON-P and JSON-with-padding) via adding a callback parameter to the resource's query. We define making sense to do so for any API request that can be returned in either JSON or GeoJSON; supplying the callback parameter for a resource which also requests the response in XML format will result in 400 Bad Request being returned in the response headers.

Error Codes

Wherever possible, the what3words API tries to use the appropriate HTTP status code to indicate problems or errors when invoking an API resource; the status code and reason message are additionally returned in the status section of the response body as status and reason respectively.

Both the HTTP status and the API status should be checked; it is entirely possible to have an HTTP status of 200 returned because the API request was well formed but to have an API error code returned because the request generated an error or contained an invalid parameter.

For example, attempting to forward geocode an invalid 3 word address such as no.address.here would return an HTTP status of 200 and an API error code of 300.

                    
{
    "status": {
        "status": 200,
        "reason": "OK",
        "code": 300,
        "message": "Invalid or non-existent 3 word address"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                    
                

200

The API resource call was well formed and successfully handled; additional information may also be available in the status section of the response body.

400

An attempt was made to access an SSL only API endpoint via vanilla HTTP.

400

A required parameter was missing or contained an invalid value.

401

An invalid what3words API key was supplied or the what3words API key was missing.

404

An invalid or unknown API resource was invoked.

405

An invalid HTTP request method was used to access an API resource.

500

A problem has occurred with the what3words API.

503

A problem has occurred with the what3words API.


Additional what3words specific error details are also provided in the status section of the response body as follows.


Authentication Failures

1

Authentication failed; missing required key parameter or header.

2

Authentication failed; invalid key parameter value or header value.

3

Authentication failed, the specified key is inactive.

Optional Parameter Validation Failures

100

The display parameter is invalid or missing a display type.

101

The format parameter is invalid or missing a format type.

102

The addr parameter is invalid or missing a 3 word address.

103

The lang parameter is invalid or missing a language code.

104

The coords parameter is invalid or missing coordinates.

105

The focus parameter is invalid or missing coordinates or a 3 word address.

106

The clip parameter is invalid or missing the clip type and parameters.

107

The count parameter is invalid.

108

The bbox parameter is invalid.

Mandatory Parameter Validation Failures

200

Missing required addr parameter.

201

Missing required coords parameter.

202

Missing required lang parameter.

203

Missing required bbox parameter.

Geocoding Failures

300

Invalid or non-existent 3 word address.

301

Invalid or non-existent coordinates.

Grid Failures

400

The area described by the bounding box is too large; the distance between the NE and SW corners should be less than or equal to 2 km.

Forward Geocoding

Forward geocodes a 3 word address to a position, expressed as coordinates of latitude and longitude.

Resource URL

https://api.what3words.com/v2/forward

Resource Information

Response formats JSON, GeoJSON, XML
Requires authentication? Yes

Parameters

addr required

A 3 word address as a string

Example value:addr=index.home.raft

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

lang optional

A supported 3 word address language as an ISO 639-1 2 letter code. Defaults to en

Example value:lang=fr

display optional

Return display type; can be one of full (the default), terse (less output) or minimal (the bare minimum)

Example value:display=full

format optional

Return data format type; can be one of json (the default), geojson or xml

Example value:format=geojson

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Example Request

GET https://api.what3words.com/v2/forward?addr=index.home.raft&display=full&format=json&key=[API-KEY]

Example Result

                            
{
    "crs": {
        "properties": {
            "type": "ogcwkt",
            "href": "http://spatialreference.org/ref/epsg/4326/ogcwkt/"
        },
        "type": "link"
    },
    "bounds": {
        "southwest": {
            "lng": -0.203607,
            "lat": 51.521238
        },
        "northeast": {
            "lng": -0.203564,
            "lat": 51.521265
        }
    },
    "words": "index.home.raft",
    "map": "http://w3w.co/index.home.raft",
    "language": "en",
    "geometry": {
        "lng": -0.203586,
        "lat": 51.521251
    },
    "status": {
        "code": 200,
        "message": "OK"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
{
    "crs": {
        "properties": {
            "type": "ogcwkt",
            "href": "http://spatialreference.org/ref/epsg/4326/ogcwkt/"
        },
        "type": "link"
    },
    "bbox": [
        -0.203607,
        51.521238,
        -0.203564,
        51.521265
    ],
    "properties": {
        "words": "index.home.raft",
        "map": "http://w3w.co/index.home.raft",
        "language": "en",
        "status": {
            "code": 200,
            "message": "OK"
        },
        "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
    },
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [
            -0.203586,
            51.521251
        ]
    }
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<response>
    <words>index.home.raft</words>
    <geometry>
        <lat>51.521251</lat>
        <lng>-0.203586</lng>
    </geometry>
    <bounds>
        <northeast>
            <lat>51.521265</lat>
            <lng>-0.203564</lng>
        </northeast>
        <southwest>
            <lat>51.521238</lat>
            <lng>-0.203607</lng>
        </southwest>
    </bounds>
    <language>en</language>
    <crs type="ogcwkt">http://spatialreference.org/ref/epsg/4326/ogcwkt/</crs>
    <map>http://w3w.co/index.home.raft</map>
    <status>
        <code>200</code>
        <message>OK</message>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</response>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/forward?addr=index.home.raft&key=MY-API-KEY&lang=en&format=json&display=full'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/forward?addr=index.home.raft&key=MY-API-KEY&lang=en&format=json&display=full",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/forward?addr=index.home.raft&key=MY-API-KEY&lang=en&format=json&display=full",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/forward?addr=index.home.raft&key=MY-API-KEY&lang=en&format=json&display=full",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/forward?addr=index.home.raft&key=MY-API-KEY&lang=en&format=json&display=full")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/forward?addr=index.home.raft&key=MY-API-KEY&lang=en&format=json&display=full")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    

Reverse Geocoding

Reverse geocodes coordinates, expressed as latitude and longitude to a 3 word address.

Resource URL

https://api.what3words.com/v2/reverse

Resource Information

Response formats JSON, GeoJSON, XML
Requires authentication? Yes

Parameters

coords required

Coordinates as a comma separated string of latitude and longitude

Example value:coords=51.432393,-0.348023

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

lang optional

A supported 3 word address language as an ISO 639-1 2 letter code. Defaults to en

Example value:lang=fr

display optional

Return display type; can be one of full (the default), terse (less output) or minimal (the bare minimum)

Example value:display=full

format optional

Return data format type; can be one of json (the default), geojson or xml

Example value:format=geojson

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Example Request

GET https://api.what3words.com/v2/reverse?coords=51.521251,-0.203586&display=full&format=json&key=[API-KEY]

Example Result

                            
{
    "crs": {
        "type": "link",
        "properties": {
            "href": "http://spatialreference.org/ref/epsg/4326/ogcwkt/",
            "type": "ogcwkt"
        }
    },
    "words": "index.home.raft",
    "bounds": {
        "southwest": {
            "lng": -0.203607,
            "lat": 51.521238
        },
        "northeast": {
            "lng": -0.203564,
            "lat": 51.521265
        }
    },
    "geometry": {
        "lng": -0.203586,
        "lat": 51.521251
    },
    "language": "en",
    "map": "http://w3w.co/index.home.raft",
    "status": {
        "code": 200,
        "message": "OK"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
{
    "crs": {
        "type": "link",
        "properties": {
            "href": "http://spatialreference.org/ref/epsg/4326/ogcwkt/",
            "type": "ogcwkt"
        }
    },
    "bbox": [
        -0.203607,
        51.521238,
        -0.203564,
        51.521265
    ],
    "geometry": {
        "coordinates": [
            -0.203586,
            51.521251
        ],
        "type": "Point"
    },
    "type": "Feature",
    "properties": {
        "words": "index.home.raft",
        "language": "en",
        "map": "http://w3w.co/index.home.raft",
        "status": {
            "code": 200,
            "message": "OK"
        },
        "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
    }
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<response>
    <words>index.home.raft</words>
    <geometry>
        <lat>51.521251</lat>
        <lng>-0.203586</lng>
    </geometry>
    <bounds>
        <northeast>
            <lat>51.521265</lat>
            <lng>-0.203564</lng>
        </northeast>
        <southwest>
            <lat>51.521238</lat>
            <lng>-0.203607</lng>
        </southwest>
    </bounds>
    <language>en</language>
    <crs type="ogcwkt">http://spatialreference.org/ref/epsg/4326/ogcwkt/</crs>
    <map>http://w3w.co/index.home.raft</map>
    <status>
        <code>200</code>
        <message>OK</message>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</response>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/reverse?coords=51.521251%2C-0.203586&key=MY-API-KEY&lang=en&format=json&display=full'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/reverse?coords=51.521251%2C-0.203586&key=MY-API-KEY&lang=en&format=json&display=full",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/reverse?coords=51.521251%2C-0.203586&key=MY-API-KEY&lang=en&format=json&display=full",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/reverse?coords=51.521251%2C-0.203586&key=MY-API-KEY&lang=en&format=json&display=full",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/reverse?coords=51.521251%2C-0.203586&key=MY-API-KEY&lang=en&format=json&display=full")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/reverse?coords=51.521251%2C-0.203586&key=MY-API-KEY&lang=en&format=json&display=full")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    

AutoSuggest

Returns a list of 3 word addresses based on user input and other parameters.

This resource provides corrections for the following types of input error:

  • typing errors
  • spelling errors
  • misremembered words (e.g. singular vs. plural)
  • words in the wrong order

AutoSuggest determines possible corrections to the supplied 3 word address string based on the probability of the input errors listed above and returns a ranked list of suggestions. AutoSuggest can also take into consideration the geographic proximity of possible corrections to a given location to further improve the suggestions returned.

Single and Multilingual Variants

AutoSuggest is provided via 2 variant resources; single language and multilingual.

The single language autosuggest resource requires a language to be specified. The input full or partial 3 word address will be interpreted as being in the specified language and all suggestions will be in this language. We recommend that you set this according to the language of your user interface, or the browser/device language of your user. If your software or app displays 3 word addresses to users (in addition to accepting 3 words as a search/input) then we recommend you set the language parameter for this resource to the same language that 3 word addresses are displayed to your users.

The multilingual autosuggest-ml resource can accept an optional language. If specified, this will ensure that the autosuggest-ml resource will look for suggestions in this language, in addition to any other languages that yield relevant suggestions.

Input 3 word address

All AutoSuggest variants accept either a full or partial 3 word address. If a partial 3 word address is specified, you will only receive results back if the partial 3 word address you submit contains the first two words and at least the first character of the third word; otherwise an error will be returned.

Clipping and Focus

We provide various clip policies to allow you to specify a geographic area that is used to exclude results that are not likely to be relevant to your users. We recommend that you use the clip parameter to give a more targeted, shorter set of results to your user. If you know your user’s current location, we also strongly recommend that you use the focus to return results which are likely to be more relevant.

In summary, the clip policy is used to optionally restrict the list of candidate AutoSuggest results, after which, if focus has been supplied, this will be used to weight the results in order of relevancy to the focus.

Results

A maximum of 100 AutoSuggest results may be returned, but you may choose to display fewer results to your user e.g. the first 3 or 5 (depending on your user interface). By default, 3 results will be returned. It is possible we may increase the number of results returned in the future, so if you choose to limit the list of results returned, we recommend that you choose to include e.g. the top 3/5/7 results rather than choose to exclude the bottom e.g. 18/19/20 results.

Resource URL

Single Language AutoSuggest https://api.what3words.com/v2/autosuggest
Multilingual AutoSuggest https://api.what3words.com/v2/autosuggest-ml

Resource Information

Response formats JSON, GeoJSON, XML
Requires authentication? Yes

Parameters

addr required

The full or partial 3 word address to obtain suggestions for. At minimum this must be the first two complete words plus at least one character from the third word

Example value:addr=plan.clips.a

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

lang varies

For autosuggest the lang parameter is required; for autosuggest-ml, the lang parameter is optional. If specified, this parameter must be a supported 3 word address language as an ISO 639-1 2 letter code

Example value:lang=fr

focus optional

A location, specified as a latitude,longitude used to refine the results. If specified, the results will be weighted to give preference to those near the specified location in addition to considering similarity to the addr string. If omitted the default behaviour is to weight results for similarity to the addr string only.

Example value:focus=51.521251,-0.203586

clip optional

Restricts results to those within a geographical area. If omitted defaults to clip=none.

See the section on clipping policies below for full details on the differing clip policies available.

Example value:clip=radius(51.521251,-0.203586,10)

count optional

The number of AutoSuggest results to return. A maximum of 100 results can be specified, if a number greater than this is requested, this will be truncated to the maximum. The default is 3

Example value:count=5

display optional

Return display type; can be one of full (the default) or terse

Example value:display=full

format optional

Return data format type; can be one of json (the default), geojson or xml

Example value:format=json

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Clipping Policies

None default

No clipping takes place; this is the default.

Example value:clip=none.

Radius

clip=radius(lat,lng,km). Clips to a radius of km kilometers from the point specified as lat,lng.

Example value:clip=radius(51.521251,-0.203586,10)

Focus

clip=focus(km). Clips to a radius of km kilometers from the point specified by the focus parameter.

Example value:clip=focus(10)

Bounding Box

clip=bbox(nelat,nelng,swlat,swlng). Clips to 3 word addresses that are fully contained inside a bounding box, specified by the northeast and southwest corner coordinates.

Example value:clip=bbox(51.521215,-0.2036011,51.520982,-0.2041395)

Example Requests

Single Language AutoSuggest

This example returns AutoSuggest results for the partial 3 word address plan.clips.a; the results are not clipped and not ranked for proximity to a given location.

GET https://api.what3words.com/v2/autosuggest?addr=plan.clips.a&lang=en&key=[API-KEY]

Single Language AutoSuggest With Focus And Without Clip Policy

This example returns AutoSuggest results for the partial 3 word address plan.clips.a; the results are ranked for proximity relevance to the focus point of 51.4243877,-0.3474524.

GET https://api.what3words.com/v2/autosuggest?addr=plan.clips.a&lang=en&focus=51.4243877,-0.3474524&key=[API-KEY]

Single Language AutoSuggest With Radius Clip Policy

This example returns AutoSuggest results for the partial 3 word address plan.clips.a; the results are constrained to those that are within 10 km of the point 51.4243877,-0.3474524.

GET https://api.what3words.com/v2/autosuggest?addr=plan.clips.a&clip=radius(51.4243877,-0.3474524,10)&lang=en&key=[API-KEY]

Single Language AutoSuggest With Focus Clip Policy

This example returns AutoSuggest results for the partial 3 word address plan.clips.a; the results are constrained to those that are within 10 km of the focus point of 51.4243877,-0.3474524.

GET https://api.what3words.com/v2/autosuggest?addr=plan.clips.a&focus=51.4243877,-0.3474524&clip=focus(10)&lang=en&key=[API-KEY]

Single Language AutoSuggest With Bounding Box Clip Policy

This example returns AutoSuggest results for the partial 3 word address plan.clips.a; the results are constrained to those that are within the bounding box described by a NE corner of 54,2 and a SW corner of 50,-4; the results are then ranked for proximity relevance to the focus point of 51.4243877,-0.3474524.

GET https://api.what3words.com/v2/autosuggest?addr=plan.clips.a&focus=51.4243877,-0.3474524&clip=bbox(54,2,50,-4)&lang=en&key=[API-KEY]

Multilingual AutoSuggest

This example returns multilingual AutoSuggest results for the 3 word address geschaft.planter.carciofi; the results are not clipped and not ranked for proximity to a given location.

GET https://api.what3words.com/v2/autosuggest-ml?addr=geschaft.planter.carciofi&format=json&key=[API-KEY]

Example Result

                            
{
  "suggestions": [
    {
      "country": "gb",
      "distance": 14,
      "words": "plan.clips.area",
      "rank": 1,
      "geometry": {
        "lng": -0.140382,
        "lat": 51.429293
      },
      "place": "Brixton Hill, London"
    },
    {
      "country": "gb",
      "distance": 7,
      "words": "plan.flips.dawn",
      "rank": 2,
      "geometry": {
        "lng": -0.443947,
        "lat": 51.425332
      },
      "place": "Sunbury-on-Thames, Surrey"
    },
    {
      "country": "gb",
      "distance": 27,
      "words": "plan.clips.arts",
      "rank": 3,
      "geometry": {
        "lng": -0.249153,
        "lat": 51.659134
      },
      "place": "Borehamwood, Herts."
    }
  ],
  "status": {
    "status": 200,
    "reason": "OK"
  },
  "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
{
  "features": [
    {
      "geometry": {
        "coordinates": [
          -0.140382,
          51.429293
        ],
        "type": "Point"
      },
      "type": "Feature",
      "properties": {
        "country": "gb",
        "distance": 14,
        "words": "plan.clips.area",
        "rank": 1,
        "place": "Brixton Hill, London"
      }
    },
    {
      "geometry": {
        "coordinates": [
          -0.443947,
          51.425332
        ],
        "type": "Point"
      },
      "type": "Feature",
      "properties": {
        "country": "gb",
        "distance": 7,
        "words": "plan.flips.dawn",
        "rank": 2,
        "place": "Sunbury-on-Thames, Surrey"
      }
    },
    {
      "geometry": {
        "coordinates": [
          -0.249153,
          51.659134
        ],
        "type": "Point"
      },
      "type": "Feature",
      "properties": {
        "country": "gb",
        "distance": 27,
        "words": "plan.clips.arts",
        "rank": 3,
        "place": "Borehamwood, Herts."
      }
    }
  ],
  "type": "FeatureCollection",
  "properties": {
    "status": {
      "status": 200,
      "reason": "OK"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
  }
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<suggestions>
    <suggestion>
        <rank>1</rank>
        <words>plan.clips.area</words>
        <country>gb</country>
        <place>Brixton Hill, London</place>
        <geometry>
            <lat>51.429293</lat>
            <lng>-0.140382</lng>
        </geometry>
        <distance>14</distance>
    </suggestion>
    <suggestion>
        <rank>2</rank>
        <words>plan.flips.dawn</words>
        <country>gb</country>
        <place>Sunbury-on-Thames, Surrey</place>
        <geometry>
            <lat>51.425332</lat>
            <lng>-0.443947</lng>
        </geometry>
        <distance>7</distance>
    </suggestion>
    <suggestion>
        <rank>3</rank>
        <words>plan.clips.arts</words>
        <country>gb</country>
        <place>Borehamwood, Herts.</place>
        <geometry>
            <lat>51.659134</lat>
            <lng>-0.249153</lng>
        </geometry>
        <distance>27</distance>
    </suggestion>
    <status>
        <status>200</status>
        <reason>OK</reason>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</suggestions>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/autosuggest?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/autosuggest?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/autosuggest?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/autosuggest?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/autosuggest?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/autosuggest?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/autosuggest-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/autosuggest-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/autosuggest-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/autosuggest-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/autosuggest-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/autosuggest-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    

Voice AutoSuggest

Returns a list of 3 word addresses based on an input string of URL encoded Nuance Vocon Hybrid JSON. Please note that this resource does not provide speech recognition capabilities and that a separate licensing agreement is required with Nuance to use the VoCon Hybrid SDK.

This resource provides corrections for the following types of input error:

  • spelling errors
  • misremembered words (e.g. singular vs. plural)
  • words in the wrong order

The voice-autosuggest resource determines possible corrections to the supplied 3 word addresses based on the probability of the input errors listed above and returns a ranked list of suggestions. This resource can also take into consideration the geographic proximity of possible corrections to a given location to further improve the suggestions returned.

Clipping and Focus

We provide various clip policies to allow you to specify a geographic area that is used to exclude results that are not likely to be relevant to your users. We recommend that you use the clip parameter to give a more targeted, shorter set of results to your user. If you know your user’s current location, we also strongly recommend that you use the focus to return results which are likely to be more relevant.

In summary, the clip policy is used to optionally restrict the list of candidate Voice AutoSuggest results, after which, if focus has been supplied, this will be used to weight the results in order of relevancy to the focus.

Language

The lang parameter is mandatory for voice-autosuggest; we recommend that you set this according to the language of your user interface, or the browser/device language of your user. If your software or app displays 3 word addresses to users (in addition to accepting 3 words as a search/input) then we recommend you set the language parameter for this resource to the same language that 3 word addresses are displayed to your users.

Results

A maximum of 20 Voice AutoSuggest results may be returned, but you may choose to display fewer results to your user e.g. the first 3 or 5 (depending on your user interface). By default, 3 results will be returned. It is possible we may increase the number of results returned in the future, so if you choose to limit the list of results returned, we recommend that you choose to include e.g. the top 3/5/7 results rather than choose to exclude the bottom e.g. 18/19/20 results.

Resource URL

https://api.what3words.com/v2/voice-autosuggest

Resource Information

Response formats JSON, GeoJSON, XML
Requires authentication? Yes

Parameters

json required

Nuance VoCon Hybrid JSON, which must be URL encoded.

Example value:json=[URL encoded JSON string]

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

lang required

A supported 3 word address language as an ISO 639-1 2 letter code

Example value:lang=fr

focus optional

A location, specified as a latitude,longitude used to refine the results. If specified, the results will be weighted to give preference to those near the specified location in addition to considering similarity to the addr string. If omitted the default behaviour is to weight results for similarity to the addr string only.

Example value:focus=51.521251,-0.203586

clip optional

Restricts results to those within a geographical area. If omitted defaults to clip=none.

See the section on clipping policies below for full details on the differing clip policies available.

Example value:clip=radius(51.521251,-0.203586,10)

count optional

The number of Voice AutoSuggest results to return. A maximum of 20 results can be specified, if a number greater than 20 is requested, this will be truncated to the maximum. The default is 3

Example value:count=5

display optional

Return display type; can be one of full (the default) or terse

Example value:display=full

format optional

Return data format type; can be one of json (the default), geojson or xml

Example value:format=json

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Clipping Policies

None default

No clipping takes place; this is the default.

Example value:clip=none.

Radius

clip=radius(lat,lng,km). Clips to a radius of km kilometers from the point specified as lat,lng.

Example value:clip=radius(51.521251,-0.203586,10)

Focus

clip=focus(km). Clips to a radius of km kilometers from the point specified by the focus parameter.

Example value:clip=focus(10)

Bounding Box

clip=bbox(nelat,nelng,swlat,swlng). Clips to 3 word addresses that are fully contained inside a bounding box, specified by the northeast and southwest corner coordinates.

Example value:clip=bbox(51.521215,-0.2036011,51.520982,-0.2041395)

Example Requests

Voice AutoSuggest With Focus And Without Clip Policy

This example returns Voice AutoSuggest results for the supplied Nuance VoCon Hybrid JSON; the results are ranked for proximity relevance to the focus point of 51.4243877,-0.3474524.

GET https://api.what3words.dev/v2/voice-autosuggest?json=%7B%22_isInGrammar%22%3A%22yes%22%2C%22_isSpeech%22%3A%22yes%22%2C%22_hypotheses%22%3A%5B%7B%22_score%22%3A342516%2C%22_startRule%22%3A%22whatthreewordsgrammar%23_main_%22%2C%22_conf%22%3A6546%2C%22_endTimeMs%22%3A6360%2C%22_beginTimeMs%22%3A1570%2C%22_lmScore%22%3A300%2C%22_items%22%3A%5B%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A34225%2C%22_orthography%22%3A%22tend%22%2C%22_conf%22%3A6964%2C%22_endTimeMs%22%3A2250%2C%22_beginTimeMs%22%3A1580%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A47670%2C%22_orthography%22%3A%22artichokes%22%2C%22_conf%22%3A7176%2C%22_endTimeMs%22%3A3180%2C%22_beginTimeMs%22%3A2260%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A43800%2C%22_orthography%22%3A%22poached%22%2C%22_conf%22%3A6181%2C%22_endTimeMs%22%3A4060%2C%22_beginTimeMs%22%3A3220%7D%5D%7D%2C%7B%22_score%22%3A342631%2C%22_startRule%22%3A%22whatthreewordsgrammar%23_main_%22%2C%22_conf%22%3A6498%2C%22_endTimeMs%22%3A6360%2C%22_beginTimeMs%22%3A1570%2C%22_lmScore%22%3A300%2C%22_items%22%3A%5B%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A34340%2C%22_orthography%22%3A%22tent%22%2C%22_conf%22%3A6772%2C%22_endTimeMs%22%3A2250%2C%22_beginTimeMs%22%3A1580%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A47670%2C%22_orthography%22%3A%22artichokes%22%2C%22_conf%22%3A7176%2C%22_endTimeMs%22%3A3180%2C%22_beginTimeMs%22%3A2260%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A43800%2C%22_orthography%22%3A%22poached%22%2C%22_conf%22%3A6181%2C%22_endTimeMs%22%3A4060%2C%22_beginTimeMs%22%3A3220%7D%5D%7D%2C%7B%22_score%22%3A342668%2C%22_startRule%22%3A%22whatthreewordsgrammar%23_main_%22%2C%22_conf%22%3A6474%2C%22_endTimeMs%22%3A6360%2C%22_beginTimeMs%22%3A1570%2C%22_lmScore%22%3A300%2C%22_items%22%3A%5B%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A34225%2C%22_orthography%22%3A%22tend%22%2C%22_conf%22%3A6964%2C%22_endTimeMs%22%3A2250%2C%22_beginTimeMs%22%3A1580%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A47670%2C%22_orthography%22%3A%22artichokes%22%2C%22_conf%22%3A7176%2C%22_endTimeMs%22%3A3180%2C%22_beginTimeMs%22%3A2260%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A41696%2C%22_orthography%22%3A%22perch%22%2C%22_conf%22%3A5950%2C%22_endTimeMs%22%3A4020%2C%22_beginTimeMs%22%3A3220%7D%5D%7D%2C%7B%22_score%22%3A342670%2C%22_startRule%22%3A%22whatthreewordsgrammar%23_main_%22%2C%22_conf%22%3A6474%2C%22_endTimeMs%22%3A6360%2C%22_beginTimeMs%22%3A1570%2C%22_lmScore%22%3A300%2C%22_items%22%3A%5B%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A34379%2C%22_orthography%22%3A%22tinge%22%2C%22_conf%22%3A6705%2C%22_endTimeMs%22%3A2250%2C%22_beginTimeMs%22%3A1580%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A47670%2C%22_orthography%22%3A%22artichokes%22%2C%22_conf%22%3A7176%2C%22_endTimeMs%22%3A3180%2C%22_beginTimeMs%22%3A2260%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A43800%2C%22_orthography%22%3A%22poached%22%2C%22_conf%22%3A6181%2C%22_endTimeMs%22%3A4060%2C%22_beginTimeMs%22%3A3220%7D%5D%7D%2C%7B%22_score%22%3A342783%2C%22_startRule%22%3A%22whatthreewordsgrammar%23_main_%22%2C%22_conf%22%3A6426%2C%22_endTimeMs%22%3A6360%2C%22_beginTimeMs%22%3A1570%2C%22_lmScore%22%3A300%2C%22_items%22%3A%5B%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A34340%2C%22_orthography%22%3A%22tent%22%2C%22_conf%22%3A6772%2C%22_endTimeMs%22%3A2250%2C%22_beginTimeMs%22%3A1580%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A47670%2C%22_orthography%22%3A%22artichokes%22%2C%22_conf%22%3A7176%2C%22_endTimeMs%22%3A3180%2C%22_beginTimeMs%22%3A2260%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A41696%2C%22_orthography%22%3A%22perch%22%2C%22_conf%22%3A5950%2C%22_endTimeMs%22%3A4020%2C%22_beginTimeMs%22%3A3220%7D%5D%7D%2C%7B%22_score%22%3A342822%2C%22_startRule%22%3A%22whatthreewordsgrammar%23_main_%22%2C%22_conf%22%3A6402%2C%22_endTimeMs%22%3A6360%2C%22_beginTimeMs%22%3A1570%2C%22_lmScore%22%3A300%2C%22_items%22%3A%5B%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A34379%2C%22_orthography%22%3A%22tinge%22%2C%22_conf%22%3A6705%2C%22_endTimeMs%22%3A2250%2C%22_beginTimeMs%22%3A1580%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A47670%2C%22_orthography%22%3A%22artichokes%22%2C%22_conf%22%3A7176%2C%22_endTimeMs%22%3A3180%2C%22_beginTimeMs%22%3A2260%7D%2C%7B%22_type%22%3A%22terminal%22%2C%22_score%22%3A41696%2C%22_orthography%22%3A%22perch%22%2C%22_conf%22%3A5950%2C%22_endTimeMs%22%3A4020%2C%22_beginTimeMs%22%3A3220%7D%5D%7D%5D%2C%22_resultType%22%3A%22NBest%22%7D&lang=en&focus=51.4243877,-0.3474524&format=json&key=[api-key]

Example Result

                            
{
  "suggestions": [
    {
      "country": "ie",
      "distance": 598,
      "words": "tinges.artichokes.perch",
      "rank": 1,
      "geometry": {
        "lng": -8.621144,
        "lat": 53.283595
      },
      "place": "Athenry, Connaught"
    },
    {
      "country": "ch",
      "distance": 924,
      "words": "tent.artichoke.perch",
      "rank": 2,
      "geometry": {
        "lng": 9.739427,
        "lat": 46.400132
      },
      "place": "Silvaplana, Grisons"
    },
    {
      "country": "se",
      "distance": 1183,
      "words": "tending.artichokes.perch",
      "rank": 3,
      "geometry": {
        "lng": 15.379507,
        "lat": 56.805695
      },
      "place": "Lessebo, Kronoberg"
    }
  ],
  "status": {
    "status": 200,
    "reason": "OK"
  },
  "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
{
  "features": [
    {
      "geometry": {
        "coordinates": [
          -8.621144,
          53.283595
        ],
        "type": "Point"
      },
      "type": "Feature",
      "properties": {
        "country": "ie",
        "distance": 598,
        "words": "tinges.artichokes.perch",
        "rank": 1,
        "place": "Athenry, Connaught"
      }
    },
    {
      "geometry": {
        "coordinates": [
          9.739427,
          46.400132
        ],
        "type": "Point"
      },
      "type": "Feature",
      "properties": {
        "country": "ch",
        "distance": 924,
        "words": "tent.artichoke.perch",
        "rank": 2,
        "place": "Silvaplana, Grisons"
      }
    },
    {
      "geometry": {
        "coordinates": [
          15.379507,
          56.805695
        ],
        "type": "Point"
      },
      "type": "Feature",
      "properties": {
        "country": "se",
        "distance": 1183,
        "words": "tending.artichokes.perch",
        "rank": 3,
        "place": "Lessebo, Kronoberg"
      }
    }
  ],
  "type": "FeatureCollection",
  "properties": {
    "status": {
      "status": 200,
      "reason": "OK"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
  }
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<suggestions>
    <suggestion>
        <rank>1</rank>
        <words>tinges.artichokes.perch</words>
        <country>ie</country>
        <place>Athenry, Connaught</place>
        <geometry>
            <lat>53.283595</lat>
            <lng>-8.621144</lng>
        </geometry>
        <distance>598</distance>
    </suggestion>
    <suggestion>
        <rank>2</rank>
        <words>tent.artichoke.perch</words>
        <country>ch</country>
        <place>Silvaplana, Grisons</place>
        <geometry>
            <lat>46.400132</lat>
            <lng>9.739427</lng>
        </geometry>
        <distance>924</distance>
    </suggestion>
    <suggestion>
        <rank>3</rank>
        <words>tending.artichokes.perch</words>
        <country>se</country>
        <place>Lessebo, Kronoberg</place>
        <geometry>
            <lat>56.805695</lat>
            <lng>15.379507</lng>
        </geometry>
        <distance>1183</distance>
    </suggestion>
    <status>
        <status>200</status>
        <reason>OK</reason>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</suggestions>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/voice-autosuggest?json=%257B%2522_isInGrammar%2522%253A%2522yes%2522%252C%2522_isSpeech%2522%253A%2522yes%2522%252C%2522_hypotheses%2522%253A%255B%257B%2522_score%2522%253A342516%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6546%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342631%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6498%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342668%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342670%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342783%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6426%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342822%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6402%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%255D%252C%2522_resultType%2522%253A%2522NBest%2522%257D&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/voice-autosuggest?json=%257B%2522_isInGrammar%2522%253A%2522yes%2522%252C%2522_isSpeech%2522%253A%2522yes%2522%252C%2522_hypotheses%2522%253A%255B%257B%2522_score%2522%253A342516%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6546%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342631%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6498%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342668%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342670%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342783%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6426%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342822%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6402%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%255D%252C%2522_resultType%2522%253A%2522NBest%2522%257D&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/voice-autosuggest?json=%257B%2522_isInGrammar%2522%253A%2522yes%2522%252C%2522_isSpeech%2522%253A%2522yes%2522%252C%2522_hypotheses%2522%253A%255B%257B%2522_score%2522%253A342516%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6546%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342631%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6498%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342668%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342670%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342783%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6426%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342822%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6402%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%255D%252C%2522_resultType%2522%253A%2522NBest%2522%257D&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/voice-autosuggest?json=%257B%2522_isInGrammar%2522%253A%2522yes%2522%252C%2522_isSpeech%2522%253A%2522yes%2522%252C%2522_hypotheses%2522%253A%255B%257B%2522_score%2522%253A342516%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6546%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342631%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6498%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342668%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342670%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342783%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6426%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342822%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6402%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%255D%252C%2522_resultType%2522%253A%2522NBest%2522%257D&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/voice-autosuggest?json=%257B%2522_isInGrammar%2522%253A%2522yes%2522%252C%2522_isSpeech%2522%253A%2522yes%2522%252C%2522_hypotheses%2522%253A%255B%257B%2522_score%2522%253A342516%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6546%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342631%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6498%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342668%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342670%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342783%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6426%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342822%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6402%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%255D%252C%2522_resultType%2522%253A%2522NBest%2522%257D&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/voice-autosuggest?json=%257B%2522_isInGrammar%2522%253A%2522yes%2522%252C%2522_isSpeech%2522%253A%2522yes%2522%252C%2522_hypotheses%2522%253A%255B%257B%2522_score%2522%253A342516%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6546%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342631%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6498%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342668%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34225%252C%2522_orthography%2522%253A%2522tend%2522%252C%2522_conf%2522%253A6964%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342670%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6474%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A43800%252C%2522_orthography%2522%253A%2522poached%2522%252C%2522_conf%2522%253A6181%252C%2522_endTimeMs%2522%253A4060%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342783%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6426%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34340%252C%2522_orthography%2522%253A%2522tent%2522%252C%2522_conf%2522%253A6772%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%252C%257B%2522_score%2522%253A342822%252C%2522_startRule%2522%253A%2522whatthreewordsgrammar%2523_main_%2522%252C%2522_conf%2522%253A6402%252C%2522_endTimeMs%2522%253A6360%252C%2522_beginTimeMs%2522%253A1570%252C%2522_lmScore%2522%253A300%252C%2522_items%2522%253A%255B%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A34379%252C%2522_orthography%2522%253A%2522tinge%2522%252C%2522_conf%2522%253A6705%252C%2522_endTimeMs%2522%253A2250%252C%2522_beginTimeMs%2522%253A1580%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A47670%252C%2522_orthography%2522%253A%2522artichokes%2522%252C%2522_conf%2522%253A7176%252C%2522_endTimeMs%2522%253A3180%252C%2522_beginTimeMs%2522%253A2260%257D%252C%257B%2522_type%2522%253A%2522terminal%2522%252C%2522_score%2522%253A41696%252C%2522_orthography%2522%253A%2522perch%2522%252C%2522_conf%2522%253A5950%252C%2522_endTimeMs%2522%253A4020%252C%2522_beginTimeMs%2522%253A3220%257D%255D%257D%255D%252C%2522_resultType%2522%253A%2522NBest%2522%257D&key=MY-API-KEY&focus=51.521251%2C-0.203586&clip=51.521251%2C-0.203586%2C5&lang=en&format=json&display=full")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    

StandardBlend

Returns a blend of the three most relevant 3 word address candidates for a given location, based on a full or partial 3 word address.

The specified 3 word address may either be a full 3 word address or a partial 3 word address containing the first 2 words in full and at least 1 character of the 3rd word. StandardBlend provides the search logic that powers the search box on map.what3words.com and in the what3words mobile apps.

Single and Multilingual Variants

StandardBlend is provided via 2 variant resources; single language and multilingual.

The single language standardblend resource requires a language to be specified. The input full or partial 3 word address will be interpreted as being in the specified language and all results will be in this language.

The multilingual standardblend-ml resource can accept an optional language. If specified, this will ensure that the standardblend-ml resource will look for results in this language, in addition to any other languages that yield relevant results.

Resource URL

Single Language StandardBlend https://api.what3words/com/v2/standardblend
Multilingual StandardBlend https://api.what3words/com/v2/standardblend-ml

Resource Information

Response formats JSON, GeoJSON, XML
Requires authentication? Yes

Parameters

addr required

The full or partial 3 word address to obtain blended candidates for. At minimum this must be the first two complete words plus at least one character from the third word

Example value:addr=plan.clips.a

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

lang varies

For standardblend, the lang parameter is required; for standardblend-ml, the langparameeter is optional. If specified, this parameterer must be a supported 3 word address language as an ISO 639-1 2 letter code

Example value:lang=fr

focus optional

A location, specified as a latitude,longitude used to refine the results. If specified, the results will be weighted to give preference to those near the specified location.

Example value:focus=51.521251,-0.203586

format optional

Return data format type; can be one of json (the default), geojson or xml

Example value:format=json

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Visualising StandardBlend

The what3words map site uses the standardblend method to display candidate 3 word addresses. If the contents of the search box matches a partial 3 word address, detected by the regular expression ^\p{L}{3,}+\.\p{L}{3,}+\.\p{L}{1,}+$, then standardblend will be invoked and any resulting candidate 3 word addresses displayed. The map site also displays a relevant flag, keyed on the ISO 3166-1 alpha-2 country code that is returned by the API. For the map site, we are using a flag set licensed from IconDrawer with the addition of two additional flags for tn and xk .

Sample StandardBlend usage

Example Requests

Single Language StandardBlend

This example returns StandardBlend results for the partial 3 word address plan.clips.a; the results are ranked for proximity relevance to the focus point 51.4243877,-0.3474524.not clipped.

GET https://api.what3words.com/v2/standardblend?addr=plan.clips.above&lang=en&focus=51.4243877,-0.3474524&format=json&key=[API-KEY]

Multilingual StandardBlend

This example returns multilingual StandardBlend results for the partial 3 word address plan.clips.a; the results are ranked for proximity relevance to the focus point 51.4243877,-0.3474524.not clipped.

GET https://api.what3words.com/v2/standardblend-ml?addr=plan.clips.above&lang=en&focus=51.4243877,-0.3474524&format=json&key=[API-KEY]

Example Result

                            
{
  "blends": [
    {
      "distance": 1,
      "rank": 1,
      "words": "plan.clips.above",
      "language": "en",
      "place": "Teddington, London",
      "geometry": {
        "lng": -0.348023,
        "lat": 51.432393
      },
      "country": "gb"
    },
    {
      "distance": 6405,
      "rank": 2,
      "words": "plans.clips.above",
      "language": "en",
      "place": "Warren Park, Indiana",
      "geometry": {
        "lng": -86.101238,
        "lat": 39.785077
      },
      "country": "us"
    },
    {
      "distance": 8822,
      "rank": 3,
      "words": "plan.clip.above",
      "language": "en",
      "place": "Coronado, California",
      "geometry": {
        "lng": -117.272099,
        "lat": 32.716944
      },
      "country": "us"
    }
  ],
  "status": {
    "status": 200,
    "reason": "OK"
  },
  "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
{
  "features": [
    {
      "properties": {
        "distance": 1,
        "rank": 1,
        "words": "plan.clips.above",
        "language": "en",
        "place": "Teddington, London",
        "country": "gb"
      },
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -0.348023,
          51.432393
        ]
      }
    },
    {
      "properties": {
        "distance": 6405,
        "rank": 2,
        "words": "plans.clips.above",
        "language": "en",
        "place": "Warren Park, Indiana",
        "country": "us"
      },
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -86.101238,
          39.785077
        ]
      }
    },
    {
      "properties": {
        "distance": 8822,
        "rank": 3,
        "words": "plan.clip.above",
        "language": "en",
        "place": "Coronado, California",
        "country": "us"
      },
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -117.272099,
          32.716944
        ]
      }
    }
  ],
  "type": "FeatureCollection",
  "properties": {
    "status": {
      "status": 200,
      "reason": "OK"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
  }
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<blends>
    <blend>
        <rank>1</rank>
        <words>plan.clips.above</words>
        <country>en</country>
        <place>Teddington, London</place>
        <distance>1</distance>
        <geometry>
            <lat>51.432393</lat>
            <lng>-0.348023</lng>
        </geometry>
    </blend>
    <blend>
        <rank>2</rank>
        <words>plans.clips.above</words>
        <country>en</country>
        <place>Warren Park, Indiana</place>
        <distance>6405</distance>
        <geometry>
            <lat>39.785077</lat>
            <lng>-86.101238</lng>
        </geometry>
    </blend>
    <blend>
        <rank>3</rank>
        <words>plan.clip.above</words>
        <country>en</country>
        <place>Coronado, California</place>
        <distance>8822</distance>
        <geometry>
            <lat>32.716944</lat>
            <lng>-117.272099</lng>
        </geometry>
    </blend>
    <status>
        <status>200</status>
        <reason>OK</reason>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</blends>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/standardblend?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/standardblend?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/standardblend?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/standardblend?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/standardblend?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/standardblend?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/standardblend-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/standardblend-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/standardblend-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/standardblend-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/standardblend-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/standardblend-ml?addr=index.home.r&key=MY-API-KEY&focus=51.521251%2C-0.203586&lang=en&format=json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    

Grid

Returns a section of the 3m x 3m what3words grid for a given area.

Resource URL

https://api.what3words/com/v2/grid

Resource Information

Response formats JSON, GeoJSON, XML
Requires authentication? Yes

Parameters

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

bbox required

Bounding box, specified by the northeast and southwest corner coordinates, for which the grid should be returned.

Example value:bbox=52.208867,0.117540,52.207988,0.116126

format optional

Return data format type; can be one of json (the default), geojson or xml

Example value:format=json

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Example Request

GET https://api.what3words.com/v2/grid?bbox=52.208867,0.117540,52.207988,0.116126&format=json&key=[API-KEY]

Example Result

                            
{
  "lines": [
    {
      "start": {
        "lng": 0.11612600000001,
        "lat": 52.208009918068
      },
      "end": {
        "lng": 0.11753999999999,
        "lat": 52.208009918068
      }
    },
    {
      "start": {
        "lng": 0.11612600000001,
        "lat": 52.20803686934
      },
      "end": {
        "lng": 0.11753999999999,
        "lat": 52.20803686934
      }
    }
  ],
  "status": {
    "status": 200,
    "reason": "OK"
  },
  "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
{
  "type": "MultiLineString",
  "coordinates": [
    [
      [
        0.11612600000001,
        52.208009918068
      ],
      [
        0.11753999999999,
        52.208009918068
      ]
    ],
    [
      [
        0.11612600000001,
        52.20803686934
      ],
      [
        0.11753999999999,
        52.20803686934
      ]
    ]
  ],
  "properties": {
    "status": {
      "status": 200,
      "reason": "OK"
    },
    "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
  }
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<lines>
    <line>
        <start>
            <lat>52.208009918068136</lat>
            <lng>0.11612600000000839</lng>
        </start>
        <end>
            <lat>52.208009918068136</lat>
            <lng>0.1175399999999911</lng>
        </end>
    </line>
    <line>
        <start>
            <lat>52.20803686934023</lat>
            <lng>0.11612600000000839</lng>
        </start>
        <end>
            <lat>52.20803686934023</lat>
            <lng>0.1175399999999911</lng>
        </end>
    </line>
    <status>
        <status>200</status>
        <reason>OK</reason>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</lines>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/grid?bbox=52.208867%2C0.117540%2C52.207988%2C0.116126&key=MY-API-KEY&format=json'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/grid?bbox=52.208867%2C0.117540%2C52.207988%2C0.116126&key=MY-API-KEY&format=json",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/grid?bbox=52.208867%2C0.117540%2C52.207988%2C0.116126&key=MY-API-KEY&format=json",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/grid?bbox=52.208867%2C0.117540%2C52.207988%2C0.116126&key=MY-API-KEY&format=json",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/grid?bbox=52.208867%2C0.117540%2C52.207988%2C0.116126&key=MY-API-KEY&format=json")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/grid?bbox=52.208867%2C0.117540%2C52.207988%2C0.116126&key=MY-API-KEY&format=json")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
                        
                    

Get Languages

Retrieves a list of the currently loaded and available 3 word address languages.

Resource URL

https://api.what3words/com/v2/languages

Resource Information

Response formats JSON, XML
Requires authentication? Yes

Parameters

key required

A valid API key; if not supplied as a parameter, a key must be supplied as a request header

Example value:key=[API-KEY]

callback optional

Specifies that the response should be JSONP wrapped as a function; supplying a callback parameter is only supported for JSON and GeoJSON format responses. See JSONP Responses for more information.

Example value:callback=jsonp

Example Request

GET https://api.what3words.com/v2/languages?format=json&key=[API-KEY]

Example Result

                            
{
  "languages": [
    {
      "code": "de",
      "name": "German",
      "native_name": "Deutsch"
    },
    {
      "code": "mn",
      "name": "Mongolian",
      "native_name": "Mонгол"
    },
    {
      "code": "fi",
      "name": "Finnish",
      "native_name": "Suomi"
    },
    {
      "code": "ru",
      "name": "Russian",
      "native_name": "Русский"
    },
    {
      "code": "sv",
      "name": "Swedish",
      "native_name": "Svenska"
    },
    {
      "code": "pt",
      "name": "Portuguese",
      "native_name": "Português"
    },
    {
      "code": "sw",
      "name": "Swahili",
      "native_name": "Kiswahili"
    },
    {
      "code": "en",
      "name": "English",
      "native_name": "English"
    },
    {
      "code": "it",
      "name": "Italian",
      "native_name": "Italiano"
    },
    {
      "code": "fr",
      "name": "French",
      "native_name": "Français"
    },
    {
      "code": "es",
      "name": "Spanish; Castilian",
      "native_name": "Español"
    },
    {
      "code": "ar",
      "name": "Arabic",
      "native_name": "العربية"
    },
    {
      "code": "pl",
      "name": "Polish",
      "native_name": "Polski"
    },
    {
      "code": "tr",
      "name": "Turkish",
      "native_name": "Türkçe"
    }
  ],
  "status": {
    "status": 200,
    "reason": "OK"
  },
  "thanks": "Thanks from all of us at index.home.raft for using a what3words API"
}
                            
                        
                            
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<response>
    <languages>
        <language>
            <code>de</code>
            <name>German</name>
            <native_name>Deutsch</native_name>
        </language>
        <language>
            <code>mn</code>
            <name>Mongolian</name>
            <native_name>Mонгол</native_name>
        </language>
        <language>
            <code>fi</code>
            <name>Finnish</name>
            <native_name>Suomi</native_name>
        </language>
        <language>
            <code>ru</code>
            <name>Russian</name>
            <native_name>Русский</native_name>
        </language>
        <language>
            <code>sv</code>
            <name>Swedish</name>
            <native_name>Svenska</native_name>
        </language>
        <language>
            <code>pt</code>
            <name>Portuguese</name>
            <native_name>Português</native_name>
        </language>
        <language>
            <code>sw</code>
            <name>Swahili</name>
            <native_name>Kiswahili</native_name>
        </language>
        <language>
            <code>en</code>
            <name>English</name>
            <native_name>English</native_name>
        </language>
        <language>
            <code>it</code>
            <name>Italian</name>
            <native_name>Italiano</native_name>
        </language>
        <language>
            <code>fr</code>
            <name>French</name>
            <native_name>Français</native_name>
        </language>
        <language>
            <code>es</code>
            <name>Spanish; Castilian</name>
            <native_name>Español</native_name>
        </language>
        <language>
            <code>ar</code>
            <name>Arabic</name>
            <native_name>العربية</native_name>
        </language>
        <language>
            <code>pl</code>
            <name>Polish</name>
            <native_name>Polski</native_name>
        </language>
        <language>
            <code>tr</code>
            <name>Turkish</name>
            <native_name>Türkçe</native_name>
        </language>
    </languages>
    <status>
        <status>200</status>
        <reason>OK</reason>
    </status>
    <thanks>Thanks from all of us at index.home.raft for using a what3words API</thanks>
</response>
                            
                        
                        
curl --request GET \
  --url 'https://api.what3words.com/v2/languages?key=MY-API-KEY'
                        
                    
                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.what3words.com/v2/languages?key=MY-API-KEY",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                        
                    
                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.what3words.com",
  "port": null,
  "path": "/v2/languages?key=MY-API-KEY",
  "headers": {}
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
                        
                    
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.what3words.com/v2/languages?key=MY-API-KEY",
  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;
}
                        
                    
                        
import http.client

conn = http.client.HTTPSConnection("api.what3words.com")

conn.request("GET", "/v2/languages?key=MY-API-KEY")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                        
                    
                        
require 'uri'
require 'net/http'

url = URI("https://api.what3words.com/v2/languages?key=MY-API-KEY")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body