Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi,
I trying to connect to a secure API using a token and I received the following error:
Expression.Error: Specified value has invalid HTTP Header characters.
Parameter name: name
Details:
<Token>
Here is my Query :
let
apiUrl = "<ApiUrl>",
options = [Headers =[#" token "= "<Token>"], Query=[#" SQLQuery "=" <SqlQuery> "]],
result = Web.Contents(apiUrl , options)
in
result
The characters in my Token are alphanumeric.
How do I resolve this error.
Thanks!
Solved! Go to Solution.
I found a solution to my problem.
There was a couple of issues:
My code should have been
let
apiUrl = " <APIURL>",
SqlQuery = " <SQL Query> "
options = [Headers =[Token="<Token>", #"Content-Type" = "application/json"], Content = Text.ToBinary(SqlQuery)],
result = Web.Contents(apiUrl , options)
in
result
The Token should not have been in "". I don't know why HTTP did not recognize this header.
The API only accepts POST method, so my SQLQuery should have been submitted as Content.
I also had to specify the Content-Type.
Thanks,
Guillaume
Hi @gcyr,
The error message said there was something wrong with Parameter Names. I searched this web and found that #" token " isn't a valid header option. Maybe you can try this:
let apiUrl = "<ApiUrl>", options = [Headers =[Authorization= "<Token>"], Query=[#" SQLQuery "=" <SqlQuery> "]], result = Web.Contents(apiUrl , options) in result
Or you can try it in this format.
let
authKey = "Bearer token",
url = "https://api.powerbi.com/......",
GetJson = Web.Contents(url,
[
Headers = [#"Authorization"=authKey,
#"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8"]
]
),
content = Json.Document(GetJson),
value = content[value],
#"Converted to Table" = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "name", "addRowsAPIEnabled"}, {"Column1.id", "Column1.name", "Column1.addRowsAPIEnabled"})
in
#"Expanded Column1"
Best Regards!
Dale
I found a solution to my problem.
There was a couple of issues:
My code should have been
let
apiUrl = " <APIURL>",
SqlQuery = " <SQL Query> "
options = [Headers =[Token="<Token>", #"Content-Type" = "application/json"], Content = Text.ToBinary(SqlQuery)],
result = Web.Contents(apiUrl , options)
in
result
The Token should not have been in "". I don't know why HTTP did not recognize this header.
The API only accepts POST method, so my SQLQuery should have been submitted as Content.
I also had to specify the Content-Type.
Thanks,
Guillaume
Extremely helpful you are a star ![]()
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 160 | |
| 132 | |
| 117 | |
| 79 | |
| 53 |