Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

pages API endpoint cannot filter on title with special characters in it.

Regan Wilder
February 25, 2026

I cannot find anywhere in your documentation where it describes the need to escape special characters when filtering on title.

In this example I create a page like

 

curl --request POST \
--url 'https://{your-domain}/wiki/api/v2/pages' \
--user 'email@example.com:<api_token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"spaceId": "<string>",
"status": "current",
"title": "Something (Something & Something Else) Else",
"parentId": "<string>",
"body": {
"representation": "storage",
"value": "<string>"
},
"subtype": "live"
}'

Then i go to find it like

 

curl --request GET \
--url 'https://{your-domain}/wiki/api/v2/pages' \
--user 'email@example.com:<api_token>' \
--header 'Accept: application/json' \
--data '{
"space-id": "<string>",
"title": "Something (Something & Something Else) Else"
}'

but this will return 0 results.

Please assist me to discover the correct way to search by title. I assume the filter under the hood requires escapes of some kind.

I have tried to remove all special characters to match the URL string and that also fails.

Thanks

2 answers

1 accepted

0 votes
Answer accepted
Regan Wilder
February 25, 2026

After talking to a co-worker they suggested using URL encoding on my title and that worked.

to update my previous example GET call:


curl --request GET \
--url 'https://{your-domain}/wiki/api/v2/pages' \
--user 'email@example.com:<api_token>' \
--header 'Accept: application/json' \
--data '{
"space-id": "<string>",
"title": "Something+(Something+%26+Something+Else)+Else"
}'

This works..

I will again point to the Rest API documentation here https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-page/#api-pages-get

where it clearly says "title string". There is no mention of the need to encode this string.

clearly one head was not talking to the other behind the scenes. This is embarrassing at best and lazy at worst. Wasting everyone's time making us guess which "string" values will or wont work with or without encoding.

0 votes
Marc -Devoteam-
Community Champion
February 25, 2026

Hi @Regan Wilder 

You didn't create a page but a "Live Doc", based on the "sub-type" option set to live.

If you want to create a page, don't use this option in the API call on creating ap age.

So if you want to find the created Live doc, you need to also include.

So you can use:

  • wiki/api/v2/pages?subtype=live
  • wiki/rest/api/content/search?cql=title="Something (Something & Something Else) Else&space=<name or key of space>
Regan Wilder
February 25, 2026

Sorry i did not try this method but solved my issue.

Like Marc -Devoteam- likes this

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
PREMIUM
TAGS
AUG Leaders

Atlassian Community Events