> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# GetUrlMapping

# Package: seo

# Namespace: UrlMappingReaderService

# Method link: https://dev.wix.com/docs/api-reference/business-management/seo/url-mapping-v1/get-url-mapping.md

## Permission Scopes:
View google ads campaigns: SCOPE.PROMOTE.VIEW-GOOGLE-ADS

## Introduction

Retrieves the URL mapping for one type of item page.

Returns an empty response, not an error, when the site has no URL mapping for the key. The item
pages then use their default URL.

---

## REST API

### Schema

```
 Method: getUrlMapping
 Description: Retrieves the URL mapping for one type of item page.  Returns an empty response, not an error, when the site has no URL mapping for the key. The item pages then use their default URL.
 URL: https://www.wixapis.com/promote/url-mapper/reader/v1/url-mapping/{key}
 Method: GET
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  key
 Method parameters: 
   param name: key | type:   none | required: true 
 Return type: GetUrlMappingResponse
  - name: mapping | type: string | description: URL pattern. For example, `shoes/{{slug}}`.  Empty when the site has no URL mapping for this key.  
  - name: variables | type: array<string> | description: Variable names used in `mapping`, without the curly braces. For example, `["slug"]`.  
  - name: urlMapping | type: UrlMapping | description: Retrieved URL mapping.  Empty when the site has no URL mapping for this key.  
     - name: key | type: string | description: Type of item page this URL mapping applies to, and the variables its `mapping` must use: + `wix.stores.sub_pages.product`: Stores product page. Variables: `slug`. + `wix.blog.sub_pages.post`: Blog post page. Variables: `slug`. + `wix.blog.sub_pages.category`: Blog category page. Variables: `slug`. + `wix.bookings.sub_pages.service_page`: Bookings service page. Variables: `slug`. + `wix.online_programs.sub_pages.online_program`: Online Programs program page. Variables: `slug`. + `wix.forum.sub_pages.category`: Forum category page. Variables: `slug`. + `wix.forum.sub_pages.post`: Forum post page. Variables: `categorySlug`, `postSlug`. + `wix.groups.sub_pages.group`: Groups group page. Variables: `groupId`, `tabName`.  Other values aren't supported.  
     - name: mapping | type: string | description: URL pattern for the item pages, relative to the site's base URL. Wrap variables in double curly braces, for example `shoes/{{slug}}`. The pattern must use every variable listed for its `key`, and no others. The pattern is saved in lowercase.  Rules: up to 1,000 characters; no spaces, emoji, or URL-reserved characters; no leading or trailing slash; no empty segments; at most one variable per segment. The resulting URLs can't collide with another page on the site or with another URL mapping.  

 Possible Errors:
   HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code:  | Description: The `key` isn't supported. Details are in `fieldViolations`.


```

### Examples

### Retrieve the URL mapping for Stores product pages
When the site has no URL mapping for the key, the response has an empty `mapping` and `variables`, and no `urlMapping`.

```curl
curl -X GET \
'https://www.wixapis.com/url-mapper/reader/v1/url-mapping/wix.stores.sub_pages.product' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.seo.urlMappings.getUrlMapping(key)
 Description: Retrieves the URL mapping for one type of item page.  Returns an empty response, not an error, when the site has no URL mapping for the key. The item pages then use their default URL.
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  key
 Method parameters: 
   param name: key | type: string | description: Type of item page to retrieve the URL mapping for. See `UrlMapping.key` for supported values. Other values aren't supported. | required: true 
 Return type: PROMISE<UrlMapping>
  - name: key | type: string | description: Type of item page this URL mapping applies to, and the variables its `mapping` must use: + `wix.stores.sub_pages.product`: Stores product page. Variables: `slug`. + `wix.blog.sub_pages.post`: Blog post page. Variables: `slug`. + `wix.blog.sub_pages.category`: Blog category page. Variables: `slug`. + `wix.bookings.sub_pages.service_page`: Bookings service page. Variables: `slug`. + `wix.online_programs.sub_pages.online_program`: Online Programs program page. Variables: `slug`. + `wix.forum.sub_pages.category`: Forum category page. Variables: `slug`. + `wix.forum.sub_pages.post`: Forum post page. Variables: `categorySlug`, `postSlug`. + `wix.groups.sub_pages.group`: Groups group page. Variables: `groupId`, `tabName`.  Other values aren't supported.  
  - name: mapping | type: string | description: URL pattern for the item pages, relative to the site's base URL. Wrap variables in double curly braces, for example `shoes/{{slug}}`. The pattern must use every variable listed for its `key`, and no others. The pattern is saved in lowercase.  Rules: up to 1,000 characters; no spaces, emoji, or URL-reserved characters; no leading or trailing slash; no empty segments; at most one variable per segment. The resulting URLs can't collide with another page on the site or with another URL mapping.  

 Possible Errors:
   HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code:  | Description: The `key` isn't supported. Details are in `fieldViolations`.


```

### Examples

### getUrlMapping
```javascript
import { urlMappings } from '@wix/seo';

async function getUrlMapping(key) {
  const response = await urlMappings.getUrlMapping(key);
};
```

### getUrlMapping (with elevated permissions)
```javascript
import { urlMappings } from '@wix/seo';
import { auth } from '@wix/essentials';

async function myGetUrlMappingMethod(key) {
  const elevatedGetUrlMapping = auth.elevate(urlMappings.getUrlMapping);
  const response = await elevatedGetUrlMapping(key);
}
```

### getUrlMapping (self-managed)
Self-managed SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { urlMappings } from '@wix/seo';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { urlMappings },
  // Include the auth strategy and host as relevant
});


async function getUrlMapping(key) {
  const response = await myWixClient.urlMappings.getUrlMapping(key);
};
```

---