Following these best practices will help you build faster, more reliable integrations with The Grid API. These guidelines are based on real-world usage patterns and optimized for performance, maintainability, and cost efficiency.
- Use limit parameter to control result size
- Request only the fields you need
- Use slugs for enum filtering (e.g., productType: {slug: {_eq: "wallet"}})
- Paginate large result sets
- Cache responses when possible
- Fetch all records without limits
- Request deeply nested data unnecessarily
- Use IDs for filtering (use slugs instead)
- Run the same query repeatedly without caching
Start Broad, Narrow Down
name: {_like: "%wallet%"} → productType: {slug: {_eq: "wallet"}} → productStatus: {slug: {_eq: "live"}}
Use Relationships
Find asset → Query products supporting asset → Filter by type
Leverage Multiple Fields
Search by name, ticker, description, social handles
products {
name
productType { slug }
}
Default to filtering for active profiles unless the client explicitly asks for all statuses
When returning unfiltered results, flag which profiles are inactive, closed, or acquired
Mention the status breakdown when results contain mixed statuses (e.g., "3 active, 1 inactive, 1 closed")
profileInfos(
where: {profileStatus: {slug: {_eq: "active"}}}
limit: 20
) {
name
profileStatus { name slug }
}
Present inactive or closed profiles without labelling them as such
Assume all returned profiles are operationa
profileInfos(
where: {name: {_like: "%Jupiter%"}}
limit: 10
) {
name
profileStatus { name slug }
descriptionShort
}
The same principle applies to products (productStatus) and assets (assetStatus). Always surface status information so clients can make informed decisions.