> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.americanexpress.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.americanexpress.ferndocs.com/_mcp/server.

# Get details on a mapping

GET https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/{domain}/{guid}

Reference: https://developer.americanexpress.ferndocs.com/personalized-services/dotamex/api-reference/get-details-on-a-mapping

## Servers

- `https://apigw-dev.americanexpress.com/dotamex/v1/empurl` (E1, default)
- `https://apigw-qa.americanexpress.com/dotamex/v1/empurl` (E2)
- `https://apigw.americanexpress.com/dotamex/v1/empurl` (E3)
- `https://apigwm-qa.americanexpress.com/dotamex/v1/empurl` (Sandbox)
- `https://apigwm.americanexpress.com/dotamex/v1/empurl` (Production)

## Request

### Path parameters

- `domain` (enum, required, default: m) — The domain name of the URL.
  - Allowed values: `m`, `go`, `bca.m`, `t.m`
- `guid` (string, required) — The URL path.

## Response

### 200

Success response.

- `longUrl` (string, required) — The URL that the user should be redirected to. Must be a valid URL.
- `shortUrl` (string, required) — The returned shortUrl will only be "short" in E3, where the m, go, bca.m, t.m DNS records are in place. In E1, the value will begin with empurlshortener-dev.americanexpress.com. In E2, the value will begin with empurlshortener-qa.americanexpress.com.
- `expDate` (string, required) — The date that the shortUrl will expire on. Expired URLs will redirect users to the [URL not found page](https://www.americanexpress.com/us/homepage/error.html). We generally recommend you pick a expiration date that is twice as long as you expect the URL to be 'useful' for. See these examples. If you are generating one-off links (OTP, safe key, user specific American Express offer, etc.) which will be used in the next three days, then pick a expiration date of one week. Alternatively if you are generating links for a marketing campaign where the campaign is expected to finish one year from now, then give an expiration date of two years.
- `params` (params, optional) — This is to provide additional metadata about the URL. It also can be used to set advanced options for the URL, like cache strategy or retention period.

## Errors

### 400 Bad Request Error

Bad request.

- `any`

## Types

### params

This is to provide additional metadata about the URL. It also can be used to set advanced options for the URL, like cache strategy or retention period.

- `campaignId` (string, optional) — This is the campaign name or ID that you want to be associated with the link. This is used for tracking and analytics purposes.
- `country` (string, optional) — This is the country that you want to be associated with the link. This is used for tracking and analytics purposes.
- `channel` (string, optional) — This is the channel that you want to be associated with the link. This is used for tracking and analytics purposes.
- `da.redirect.cache-control` (string, optional) — The only valid option is no-store. This prevents the shortUrl from using the cache. If this key is not set, the default behavior is to automatically cache the URL.
- `da.couch.retention` (string, optional) — The valid options are numbers zero or greater. This is the number of days after a link expires that historical data for the Short URL is kept.

## Examples

**Response**

```json
{
  "longUrl": "https://www.americanexpress.com/us/credit-cards/business/corporate-credit-cards",
  "shortUrl": "m.amex/b39FhZ",
  "expDate": "2026-07-07T18:08:10Z",
  "params": {
    "campaignId": "campaign",
    "country": "US",
    "channel": "channel"
  }
}
```

**SDK Code**

```python
import requests

url = "https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

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

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

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://apigw-dev.americanexpress.com/dotamex/v1/empurl/mapping/m/guid")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```