Hello! Is there any reason I would get different results between these two methods of querying data? ```curl <https://xuaf19yr.api.sanity.io/v1/data/query/production>\?query\=\*%5B_type%20%...

8 replies
Last updated: Jan 12, 2021

Hello! Is there any reason I would get different results between these two methods of querying data?

curl <https://xuaf19yr.api.sanity.io/v1/data/query/production>\?query\=\*%5B_type%20%3D%3D%20%22articlePage%22%5D%20%7B%0A%09...%0A%7D

const sanity = require('@sanity/client')

const sanityClient = sanity({
  projectId: 'xuaf19yr',
  dataset: 'production',
  useCdn: false,
})

await sanityClient.fetch(`
  *[_type == "articlePage"] {
    ...
  }
`)
Any help appreciated!

Jan 12, 2021, 10:01 AM

Actually, I do get the same result!

Jan 12, 2021, 10:04 AM

However, locally using "Vision" in Studio I'm getting the result I am expecting. I am probably missing something here.

Jan 12, 2021, 10:05 AM

What's the result you are not getting that you'd like to get?
If it's something like including

drafts.&lt;id&gt;
documents in your results, this will require a read token as these documents are on a so-called non-root path (they have a
.
in the ID) and therefore private even in a public dataset.
To set up a read token, go to your project on
manage.sanity.io , then to Settings and API. You should see an option there to add a new token. If you create a read token, you can then add it to the client configuration as follows:
const sanityClient = sanity({
  projectId: 'xuaf19yr',
  dataset: 'production',
  token: '&lt;SANITY_READ_TOKEN&gt;'
  useCdn: false,
})

Jan 12, 2021, 10:11 AM

Thank you for your reply

user M
! Using a token I'm getting the results I'm expecting!

Jan 12, 2021, 10:12 AM

Very helpful and a huge load off my shoulders!

Jan 12, 2021, 10:12 AM

Glad to hear! Was there anywhere you checked in the documentation and expecting to find this information? Just in case we can make it more visible 🙂

Jan 12, 2021, 10:14 AM

I’m not sure to be honest, I encountered this while using the seemingly excellent https://github.com/LiamMartens/sanity-plugin-intl-input . The plugin namespaces translated documents using i18n.&lt;id&gt;, which explains the issue. Maybe it would be a good idea for the plugin author to mention this somewhere in the plugin documentation, I’ll mention it when closing the issue I opened regarding this.

Jan 12, 2021, 10:39 AM

Thanks Jacob, that's great feedback indeed. I think Liam (the plugin's author) is considering adding the option to either use non-root paths or the former notation that put the i18n info at the back of the ID without a

.
. Feels like a good opportunity to add the note you suggested alongside the option itself 🙂

Jan 12, 2021, 10:46 AM

Sanity.io: Get the most out of your content

Sanity.io is a platform to build websites and applications. It comes with great APIs that let you treat content like data. Give your team exactly what they need to edit and publish their content with the customizable Sanity Studio. Get real-time collaboration out of the box. Sanity.io comes with a hosted datastore for JSON documents, query languages like GROQ and GraphQL, CDNs, on-demand asset transformations, presentation agnostic rich text, plugins, and much more.

Don't compromise on developer experience. Join thousands of developers and trusted companies and power your content with Sanity.io. Free to get started, pay-as-you-go on all plans.