Skip to main content
Solved

GraphQL API Pagination (allCards)

  • August 27, 2020
  • 1 reply
  • 1611 views

Hello, all.I'm trying to get all cards from a pipe consuming the GraphQL API with Python.

Everything was working until I had to use pagination to get more than 50 cards.Below, the code that is returning errors:url = ""https://api.pipefy.com/graphql""payload = ""{\""query\"": \""{ allCards(pipeId: XXXXXX, first: 50, after: \""WyIwLjYyNSIsIjIyOS4wIiw1MzExMzQ5M10=\"") { edges { node { id title phases_history { phase { name } firstTimeIn lastTimeOut } } cursor } pageInfo { endCursor hasNextPage } } }\""}""headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer <MY-AUTH-KEY>'
}response = requests.request(""POST"", url, data=payload, headers=headers)
response_body = response.text
print(response_body)Below, the error that returns:{""errors"":[{""message"":""Error parsing GraphQL request: error decoding JSON. This likely means that the GraphQL request was malformatted.: invalid character 'W' after object key:value pair""}]}If I just remove the
, after: \""WyIwLjYyNSIsIjIyOS4wIiw1MzExMzQ5M10=\


It works again, but retrieving only 50 cards.Could please, someone help me?
Thank you very much.

Best answer by Marcos Carvalho

Hello Rosana, 

 

I believe the escaping is wrong in your payload var.   

 

Here an example in Python with pagination:

import requests

url = "https://api.pipefy.com/graphql"

payload = {"query": "{   allCards(pipeId: 123456, first: 5, after:\"WyIyLjc1IiwiMC4wIiwzNjAwODc0Ml0\") {     edges {       node {         id         title         fields {           name           report_value           updated_at           value         }       }     }     pageInfo {       endCursor     }   } }"}
headers = {
    "authorization": "Bearer TOKEN",
    "content-type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

 

 

If you have any doubts about escaping, our Developers page has a Console to help you on that :wink:

https://developers.pipefy.com/reference#graphql-endpoint

 

 

View original
Did this topic help you find an answer to your question?

1 reply

Marcos Carvalho
Pipefy Staff
Forum|alt.badge.img+6

Hello Rosana, 

 

I believe the escaping is wrong in your payload var.   

 

Here an example in Python with pagination:

import requests

url = "https://api.pipefy.com/graphql"

payload = {"query": "{   allCards(pipeId: 123456, first: 5, after:\"WyIyLjc1IiwiMC4wIiwzNjAwODc0Ml0\") {     edges {       node {         id         title         fields {           name           report_value           updated_at           value         }       }     }     pageInfo {       endCursor     }   } }"}
headers = {
    "authorization": "Bearer TOKEN",
    "content-type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

 

 

If you have any doubts about escaping, our Developers page has a Console to help you on that :wink:

https://developers.pipefy.com/reference#graphql-endpoint

 

 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings