{
	"info": {
		"_postman_id": "65391f8c-0ad9-4190-88bc-f8b9121f5701",
		"name": "Sitefinity Web Services",
		"description": "This is a collection of sample request supported by Sitefinity Web Services REST API.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "00. Authenticate",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "90f232a5-a8d9-4f6b-8c23-c9301159959c",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"",
							"postman.setEnvironmentVariable(\"token\", jsonData.access_token);",
							"postman.setEnvironmentVariable(\"token_type\", jsonData.token_type);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/x-www-form-urlencoded"
					}
				],
				"body": {
					"mode": "urlencoded",
					"urlencoded": [
						{
							"key": "username",
							"value": "{{username}}",
							"type": "text"
						},
						{
							"key": "password",
							"value": "{{password}}",
							"type": "text"
						},
						{
							"key": "grant_type",
							"value": "password",
							"type": "text"
						},
						{
							"key": "scope",
							"value": "openid",
							"type": "text"
						},
						{
							"key": "client_id",
							"value": "testApp",
							"type": "text"
						},
						{
							"key": "client_secret",
							"value": "secret",
							"type": "text"
						}
					]
				},
				"url": {
					"raw": "{{baseurl}}/Sitefinity/Authenticate/OpenID/connect/token",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"Sitefinity",
						"Authenticate",
						"OpenID",
						"connect",
						"token"
					]
				},
				"description": "Sitefinity Web Services REST APIs have a single entry point from which a generic hypermedia client can navigate to the resources in the service. In the response we see links to the $metadata document that describes the schema of the service and information about the content types exposed by the service like News, Blogs and Offices."
			},
			"response": []
		},
		{
			"name": "01. Read the service root",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "e70f79f9-5931-43c2-971c-300e45cf28d3",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default"
					]
				},
				"description": "You can authenticate using the special */login* endpoint. The service returns a token that can be added as authentication header for requests that require authentication.\n\n**All requests after this one depend on the authorization token in the response.**"
			},
			"response": []
		},
		{
			"name": "02. Read the service metadata",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "ed9b04f9-78bb-450a-af9f-8f940f70863d",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"tests[\"Body has Edmx tag\"] = responseBody.has(\"<edmx\");",
							"tests[\"Body has Schema tag\"] = responseBody.has(\"<Schema\");"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/$metadata",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"$metadata"
					]
				},
				"description": "*$metadata* is a Sitefinity endpoint that contains a machine-readable description of the service model including type schemas, available operations, etc."
			},
			"response": []
		},
		{
			"name": "03. Read an entity set",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "33ea880d-012e-404b-822d-1e68b68e82e8",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					]
				},
				"description": "One of the most common responses from a REST API is a collection of resources. In this case we asked for the Job Openings collection. For each response, the Sitefinity service writes a self-described response (another REST principle) by annotating the response with a context URL. This context URL tells the service that the contents of the response are a collection of things in the Job Openings entity set.\n\nIf the @odata.nextLink annotation is present, the server opted to split the result set across multiple pages. The client can also drive paging using $top and $skip, but server-side paging is a mitigation against DoS attacks. The value property contains the bulk of the response."
			},
			"response": []
		},
		{
			"name": "04. Create an entity",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3160ca36-c9b6-4b4c-93a5-7858b1f1123f",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_id\", jsonData.Id);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"Title\": \"News item 1\"\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					]
				},
				"description": "To create a resource, send a POST to a collection. The request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "05. Update an entity",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "0af236bf-19e0-4f89-9c8e-881f7d6a56f2",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "PATCH",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n\tTitle: \"Updated news item\"\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_id}})",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_id}})"
					]
				},
				"description": "To update a resource, send a PATCH request with the properties you wish to modify. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "06. Get a single entity from an entity set",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "8f40dcae-2cb5-4a87-8651-834b0f3bfda9",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_id}})",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_id}})"
					]
				},
				"description": "To get a particular entity from a collection, append an id segment enclosed in brackets."
			},
			"response": []
		},
		{
			"name": "07. Filter a collection",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "806ae560-aaf9-4256-bd48-bfa23d774247",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?$filter=contains(Title,'news')",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "$filter",
							"value": "contains(Title,'news')"
						}
					]
				},
				"description": "The *$filter* system query option can be used to filter any collection of resources. Note that the response to a filtered collection is a collection of the same type, regardless of the number of matched resources."
			},
			"response": []
		},
		{
			"name": "08. Filter by language culture",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "c185b011-51f9-43f2-b030-52b8ffde2039",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?sf_culture=en",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "sf_culture",
							"value": "en"
						}
					]
				},
				"description": "You can query the items from a specific language culture when your Sitefinity is in multilingual mode. In this example only the Spanish translations of news items are returned."
			},
			"response": []
		},
		{
			"name": "09. Filter by provider",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "6240dc16-174f-41dc-b578-5a5c6b5f31c7",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?sf_provider=OpenAccessDataProvider",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "sf_provider",
							"value": "OpenAccessDataProvider"
						}
					]
				},
				"description": "There is support for filtering any type of content by the content provider. Just append *?sf_provider={your-provider}*, and only content from this provider will be returned. If you do not pass a provider the service always returns content from the default provider only."
			},
			"response": []
		},
		{
			"name": "10. Get item from a specific culture and provider",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "89742e94-1266-4e4b-8849-e0e013c53595",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/newsitems({{item_id}})?sf_culture=en&sf_provider=OpenAccessDataProvider",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"newsitems({{item_id}})"
					],
					"query": [
						{
							"key": "sf_culture",
							"value": "en"
						},
						{
							"key": "sf_provider",
							"value": "OpenAccessDataProvider"
						}
					]
				},
				"description": "You can get an item in specific language culture by appending *?sf_culture={culture}* at the end of the query string."
			},
			"response": []
		},
		{
			"name": "11. Sort a collection",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "88be4274-4010-461a-8d9a-f07ed9008fc8",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?$orderby=Title desc",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "$orderby",
							"value": "Title desc"
						}
					]
				},
				"description": "You can use *$orderby* system query option to request resources in ascending or descending order using *asc* or *desc*. In case *asc* or *desc* is not specified, then the resources will be ordered in ascending order. It is possible to sort on multiple attributes, these have to be comma separated."
			},
			"response": []
		},
		{
			"name": "12. Pagination over a collection",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "0c5b30de-c026-43d2-8f15-4eac84014a98",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?$orderby=Title asc&$skip=0&$top=1&$count=true",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "$orderby",
							"value": "Title asc"
						},
						{
							"key": "$skip",
							"value": "0"
						},
						{
							"key": "$top",
							"value": "1"
						},
						{
							"key": "$count",
							"value": "true"
						}
					]
				},
				"description": "There are two types of paging in Sitefinity web services, server and client side. Clients can drive paging using *$top* and *$skip*. You can also combine paging and other filtering and sorting options."
			},
			"response": []
		},
		{
			"name": "13. Counting the elements in a collection",
			"event": [
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							"",
							"tests[\"Response is a primitive number\"] = !isNaN(parseFloat(responseBody)) && isFinite(responseBody) === true;",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}/$count",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}",
						"$count"
					]
				},
				"description": "If you want to know how many items meet a condition, you can use the *$count* path segment. Note that the Content-Type header indicates that the content is text/plain."
			},
			"response": []
		},
		{
			"name": "14. Create taxon",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "a2321a5d-5325-4b19-8bdd-0a483fe0967b",
						"type": "text/javascript",
						"exec": [
							"tests[\"Successful POST request\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"taxon_id\", jsonData.Id);"
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n  \"Title\": \"latest news\",\n  \"TaxonomyId\": \"{{taxonomy_id}}\",\n  \"Name\": \"latest-news\"\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/flat-taxa",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"flat-taxa"
					]
				},
				"description": "Creating taxon for any taxonomy is simple. created from previous request. Just send a POST request to the taxonomy type url. In the body include the title of the new taxon and the id of the taxonomy."
			},
			"response": []
		},
		{
			"name": "15. Create an entity with a taxon",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "018e3acc-c268-4588-a27e-c48eeb555427",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_with_taxon_id\", jsonData.Id);",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"Title\": \"news created with taxon\",\r\n  \"Tags\": [\"{{taxon_id}}\"]\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					]
				},
				"description": "To create a resource, send a POST to a collection. The request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "16. Get a single entity with taxon",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "9aa889b0-ff80-41a5-8db3-179a5042744b",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_with_taxon_id}})?$select=*",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_with_taxon_id}})"
					],
					"query": [
						{
							"key": "$select",
							"value": "*"
						}
					]
				},
				"description": "To get a particular entity from a collection, append an id segment enclosed in brackets."
			},
			"response": []
		},
		{
			"name": "17. Get a single entity with partial selection of fields",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "9aa889b0-ff80-41a5-8db3-179a5042744b",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_with_taxon_id}})?$select=Title, Tags",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_with_taxon_id}})"
					],
					"query": [
						{
							"key": "$select",
							"value": "Title, Tags"
						}
					]
				},
				"description": "To get a particular entity from a collection, append an id segment enclosed in brackets."
			},
			"response": []
		},
		{
			"name": "18. Filter a collection using logic operators",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3a840633-66e2-4f08-9648-06c7c0677fa1",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?$filter=contains(Title,'taxon') and PublicationDate gt 2018-01-01T00:00:00Z",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "$filter",
							"value": "contains(Title,'taxon') and PublicationDate gt 2018-01-01T00:00:00Z"
						}
					]
				},
				"description": "You can use and, or and not to create more complex filter clauses."
			},
			"response": []
		},
		{
			"name": "19. Filter a collection based on a taxon",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "dd6ea417-c698-4f7d-9397-a3d2ed773598",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}?$filter=Tags/any(x:x eq {{taxon_id}})",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}"
					],
					"query": [
						{
							"key": "$filter",
							"value": "Tags/any(x:x eq {{taxon_id}})"
						}
					]
				},
				"description": "You can use any and lambda-style expressions to filter items by collection properties."
			},
			"response": []
		},
		{
			"name": "20. Delete an entity",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "93293a10-a051-419b-980e-707421c9b1b2",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "DELETE",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_with_taxon_id}})",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_with_taxon_id}})"
					]
				},
				"description": "To remove a resource, send an HTTP DELETE to the resource URL. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "21. Create image",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "21c57302-b8a2-4ef5-a528-d41704083801",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"image_id\", jsonData.Id);"
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "image/jpeg"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					},
					{
						"key": "X-Sf-Properties",
						"value": "{ParentId:\"{{image_library_id}}\"}"
					}
				],
				"body": {
					"mode": "file",
					"file": {}
				},
				"url": {
					"raw": "{{baseurl}}/api/default/images",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"images"
					]
				},
				"description": "Media is also suported. **Add an image to the body** and send a POST request."
			},
			"response": []
		},
		{
			"name": "22. Add image to culture",
			"event": [
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						]
					}
				}
			],
			"request": {
				"method": "PATCH",
				"header": [
					{
						"key": "Content-Type",
						"value": "image/jpeg"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "file",
					"file": {}
				},
				"url": {
					"raw": "{{baseurl}}/api/default/images({{image_id}})?sf_culture=de",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"images({{image_id}})"
					],
					"query": [
						{
							"key": "sf_culture",
							"value": "de"
						}
					]
				},
				"description": "To add different image for a specific language culture just append *?sf_culture={{your culture}}* to the URI of the image and make a PATCH request with the new image."
			},
			"response": []
		},
		{
			"name": "23. Relate",
			"event": [
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						]
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"@odata.id\":\"{{baseurl}}/api/default/images({{image_id}})\"\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_id}})/Images/$ref",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_id}})",
						"Images",
						"$ref"
					]
				},
				"description": "You can relate an item using */{relation}/$ref* endpoint. You must provide a *\\\"@odata.id\\\"* parameter with the related item full url in the body of the request."
			},
			"response": []
		},
		{
			"name": "24. Expand related items",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "8651a8fc-9ba5-45b0-ac94-251a3c718660",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;"
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_id}})?$expand=Images",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_id}})"
					],
					"query": [
						{
							"key": "$expand",
							"value": "Images"
						}
					]
				},
				"description": "You can use the *$expand* system query option to include parent information for hierarchical resources. In Sitefinity every child item has a navigational property called Parent. Keep in mind that navigational properties like Parent and Comments are capitalized."
			},
			"response": []
		},
		{
			"name": "25. Get related items",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "02fd9200-0399-4027-b6ce-700415e64999",
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						]
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_id}})/Images",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_id}})",
						"Images"
					]
				},
				"description": "To navigate to related entities, append the related entity name as defined in $metadata"
			},
			"response": []
		},
		{
			"name": "26. Delete relation",
			"event": [
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						]
					}
				}
			],
			"request": {
				"method": "DELETE",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/{{entity}}({{item_id}})/Images({{image_id}})/$ref",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"{{entity}}({{item_id}})",
						"Images({{image_id}})",
						"$ref"
					]
				},
				"description": "You can delete a relation using the same endpoint */{relation}/$ref*, just send it with delete verb."
			},
			"response": []
		},
		{
			"name": "27. Batch",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "8edfb6dd-bb16-4ab6-81cc-bdff613db0e1",
						"type": "text/javascript",
						"exec": [
							"tests[\"No 401 Unauthorized errors in body\"] = !(responseBody.has(\"401 Unauthorized\"));",
							"tests[\"No 404 Not Found in body\"] = !(responseBody.has(\"404 Not Found\"));",
							"tests[\"No 501 Internal server errors in body\"] = !(responseBody.has(\"500 Internal Server Error\"));"
						]
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "multipart/mixed; boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "--batch_36522ad7-fc75-4b56-8c71-56071383e77b\r\nContent-Type: multipart/mixed; boundary=changeset_54ac09ec-f437-4b08-9925-fd42ed7bd58f\r\n\r\n--changeset_54ac09ec-f437-4b08-9925-fd42ed7bd58f\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nPOST /api/default/{{entity}} HTTP/1.1\r\nHost: host\r\nContent-Type: application/json;odata.metadata=minimal\r\n\r\n{\r\n\t\"Title\": \"news batch one\"\r\n}\r\n\r\n--changeset_54ac09ec-f437-4b08-9925-fd42ed7bd58f\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 2\r\n\r\nPOST /api/default/{{entity}} HTTP/1.1\r\nHost: host\r\nContent-Type: application/json;odata.metadata=minimal\r\n\r\n{\r\n  \"Title\": \"news batch two\"\r\n}\r\n\r\n--changeset_54ac09ec-f437-4b08-9925-fd42ed7bd58f--\r\n--batch_36522ad7-fc75-4b56-8c71-56071383e77b--"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/$batch",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"$batch"
					]
				},
				"description": "Services support the collection of multiple individual HTTP requests into one single batched HTTP request. Here two job openings are created and then related in a single request."
			},
			"response": []
		},
		{
			"name": "28. Get all pages",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "33ea880d-012e-404b-822d-1e68b68e82e8",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					]
				},
				"description": "Read a collection of pages"
			},
			"response": []
		},
		{
			"name": "29. Get all pages extended",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "33ea880d-012e-404b-822d-1e68b68e82e8",
						"exec": [
							"tests[\"Status code is 200\"] = responseCode.code === 200;",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "GET",
				"header": [
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": ""
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages?$select=*",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					],
					"query": [
						{
							"key": "$select",
							"value": "*"
						}
					]
				},
				"description": "Read a collection of pages and returns all available page properties"
			},
			"response": []
		},
		{
			"name": "30. Create standard page",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3160ca36-c9b6-4b4c-93a5-7858b1f1123f",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_id\", jsonData.Id);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"Title\": \"Test page\",\r\n  \"UrlName\": \"test-page\"\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					]
				},
				"description": "To create a standard page, send a POST to the pages service root. In the request Body, specify the page Title at minimum. All other properties will be auto-generated by Sitefinity. \nThe request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests.\nNOTE: Pages are created in draft state. When you do not specify a UrlName, Sitefinity assigns a random GUID as the page UrlName"
			},
			"response": []
		},
		{
			"name": "31. Create standard page extended",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3160ca36-c9b6-4b4c-93a5-7858b1f1123f",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_id\", jsonData.Id);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"UrlName\": \"my-page-test\",\r\n  \"Title\": \"My page test\",\r\n  \"ShowInNavigation\": true,\r\n  \"HtmlTitle\": \"My page test\",\r\n  \"Description\": \"\",\r\n  \"IncludeScriptManager\": false,\r\n  \"EnableViewState\": false,\r\n  \"RequireSsl\": false,\r\n  \"AllowParametersValidation\": true,\r\n  \"Crawlable\": true,\r\n  \"IncludeInSearchIndex\": true,\r\n  \"IsHomePage\": false\r\n }"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					]
				},
				"description": "To create a standard page, send a POST to the pages service root. In the request Body, specify any of the page properties you wish to set. \nThe request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests.\nNOTE: Pages are created in draft state"
			},
			"response": []
		},
		{
			"name": "32. Create group page",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3160ca36-c9b6-4b4c-93a5-7858b1f1123f",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_id\", jsonData.Id);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"UrlName\": \"group-page-test\",\r\n  \"Title\": \"Group page test\",\r\n  \"PageType\": \"Group\",\r\n  \"ShowInNavigation\": true\r\n }"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					]
				},
				"description": "To create a group page, send a POST to the pages service root. In the request Body, in addition to Urlname and Title parameter, you must specify a PageType: \"Group\".\nThe request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "33. Create redirect page external URL",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3160ca36-c9b6-4b4c-93a5-7858b1f1123f",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_id\", jsonData.Id);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"UrlName\": \"redirect-page-test\",\r\n  \"Title\": \"Redirect page test\",\r\n  \"PageType\": \"Redirect\",\r\n  \"ShowInNavigation\": true,\r\n  \"RedirectPage\": {\r\n                \"NodeId\": \"00000000-0000-0000-0000-000000000000\",\r\n                \"ProviderName\": null,\r\n                \"OpenInNewWindow\": true,\r\n                \"RedirectUrl\": \"https://www.progress.com/sitefinity-cms\"\r\n            }\r\n }"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					]
				},
				"description": "To create a redirect page, send a POST to the pages service root. In the request Body, in addition to Urlname and Title parameter, you must specify a PageType: \"Redirect\", and define the RedirectPage in your JSON. When creating a redirect page that points to an external page you must specify the URL of the page your redirct page must point to in the RedirectPage object RedirectUrl property.\nThe request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "34. Create redirect page internal page",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "3160ca36-c9b6-4b4c-93a5-7858b1f1123f",
						"exec": [
							"tests[\"Status code is 201\"] = responseCode.code === 201;",
							"",
							"var jsonData = JSON.parse(responseBody);",
							"postman.setGlobalVariable(\"item_id\", jsonData.Id);",
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"UrlName\": \"internal-redirect-page-test\",\r\n  \"Title\": \"Internal redirect page test\",\r\n  \"PageType\": \"Redirect\",\r\n  \"ShowInNavigation\": true,\r\n  \"RedirectPage\": {\r\n                \"NodeId\": \"a9eafbd0-20e0-4846-99f9-5f069e4d14c4\",\r\n                \"ProviderName\": null,\r\n                \"OpenInNewWindow\": true,\r\n                \"RedirectUrl\": \"\"\r\n            }\r\n }"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages"
					]
				},
				"description": "To create a redirect page, send a POST to the pages service root. In the request Body, in addition to Urlname and Title parameter, you must specify a PageType: \"Redirect\", and define the RedirectPage in your JSON. When creating a redirect page that points to an internal page of your website you must specify the Id of the page your redirct page must point to in the RedirectPage object NodeId property.\nThe request format can be viewed on the service */sfhelp* web page. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "35. Update page",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "de2ef524-e87c-486a-8b96-0ac6e5773a10",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "PATCH",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n\tTitle: \"Updated page title\",\r\n\tUrlName: \"updated-page-title\"\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages({{page_id}})",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages({{page_id}})"
					]
				},
				"description": "To update a resource, send a PATCH request with the properties you wish to modify. Authorization header with a token is usually required for those requests."
			},
			"response": []
		},
		{
			"name": "36. Set home page",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "de2ef524-e87c-486a-8b96-0ac6e5773a10",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n\tpageId:\"a9eafbd0-20e0-4846-99f9-5f069e4d14c4\"\r\n}\t"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages/Default.SetHomePage()",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages",
						"Default.SetHomePage()"
					]
				},
				"description": "To set a page as yor website home page, use the Default.SetHomePage() method when doing a POSt to the pages service root. In the request body you must specify the pageId parameter (the Id of the page you want to set as a home page). Authorization header with a token is usually required for those requests.\nNOTE: Note the pageid parameter begins with lowercase!"
			},
			"response": []
		},
		{
			"name": "37. Change page parent",
			"event": [
				{
					"listen": "test",
					"script": {
						"id": "de2ef524-e87c-486a-8b96-0ac6e5773a10",
						"exec": [
							"tests[\"Status code is 204\"] = responseCode.code === 204;"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"auth": {
					"type": "noauth"
				},
				"method": "PATCH",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Authorization",
						"value": "{{token_type}} {{token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n\tParentId:\"a9eafbd0-20e0-4846-99f9-5f069e4d14c4\"\r\n}"
				},
				"url": {
					"raw": "{{baseurl}}/api/default/pages({{page_to_update_id}})",
					"host": [
						"{{baseurl}}"
					],
					"path": [
						"api",
						"default",
						"pages({{page_to_update_id}})"
					]
				},
				"description": "To change a page's parent, send a PATCH request to the pages service root and specify the Id of the pge you wish to modify. In the request Body specify the ParentId (parent page ID). Authorization header with a token is usually required for those requests."
			},
			"response": []
		}
	],
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "{{token}}",
				"type": "string"
			}
		]
	},
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"id": "7ae50242-cfff-411c-bb6c-0f249a6a0955",
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"id": "fd866aa7-39f4-467e-8bb7-27a8a5f1fc2d",
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		}
	]
}