"max_number" parameter for the getGroupMembers API method

Options

The "max_number" parameter for the getGroupMembers API method has the following description:

max_number: Optional. Specifies the maximum number of members to return. Note: to maintain performance standards Convio may limit returns to a value less than specified with this parameter, resulting in fewer results than expected.

What is, in fact, the max number of returns allowed by the API? This number isn't actually given anywhere in the documentation that I can find.

Thanks!

Tagged:

Comments

  • It isn't documented because it is subject to change by the IT staff in case allowing too many affects performance. I think the default value is 1,000 but I don't know whether IT have changed it.

  • JeffMills :

    It isn't documented because it is subject to change by the IT staff in case allowing too many affects performance. I think the default value is 1,000 but I don't know whether IT have changed it.

    I don't see the value in this method, as is, when you can't actually guarentee a list of all members in the group. I can certianly see performance issues if you allow a single query to dump 100,000 returns, but for this to be valueable, you have to provide a way for a developer to retrieve a list of all group members (perhaps in multiple, indexed queries). I mean, as it stands, I can't even be sure whether a group of 900 will return all members since there is no guarentee the internal max isn't set to 50, and there doesn't seem to be any way, programatically, to get members who aren't pulled first.

    What about some argument that indexes the group members and a method that returns the number of members in a given group? You could add this data to the return for "getUserGroups" perhaps, so it not only returns the ID and name but also the number of members. Then, on the getGroupMembers method, each member is indexed and with another arguement that lets us specify the start_number with the default being 0 (or 1 -- depending on how much of a geek you are... heh)

    That way, I can first know how many records are in Group ID 12345. Then, I can divide that number by, say, 100 ( or 50, or 10 or whatever) and pull 0-99 for page 1, 100-199 for page two, etc, for some sort of member list application. If I'm doing something that actually requires all members at the same time (think the CARE Power Circles, or some sort of simple data syncing tool -- these things don't ALWAYS have to be able widgets!), I would simply show a "processing" doohicky for the user, since 12345 has 9126 members and I can only retrieve 500 at a time I have to run 19 serialized queries to fully populate an array or whatever and I can easily map that progress to a percent complete meter to make the UI clean. Anyway, that's just one possible idea....

    At the very least, is seems reasonable to ask that Convio place their hard-stop max on the API documentation page and just change it there when they change it by making updating the document part of the business process required to change that value.

  • Michael :

    I don't see the value in this method, as is, when you can't actually guarentee a list of all members in the group. I can certianly see performance issues if you allow a single query to dump 100,000 returns, but for this to be valueable, you have to provide a way for a developer to retrieve a list of all group members (perhaps in multiple, indexed queries). I mean, as it stands, I can't even be sure whether a group of 900 will return all members since there is no guarentee the internal max isn't set to 50, and there doesn't seem to be any way, programatically, to get members who aren't pulled first.

    What about some argument that indexes the group members and a method that returns the number of members in a given group? You could add this data to the return for "getUserGroups" perhaps, so it not only returns the ID and name but also the number of members. Then, on the getGroupMembers method, each member is indexed and with another arguement that lets us specify the start_number with the default being 0 (or 1 -- depending on how much of a geek you are... heh)

    That way, I can first know how many records are in Group ID 12345. Then, I can divide that number by, say, 100 ( or 50, or 10 or whatever) and pull 0-99 for page 1, 100-199 for page two, etc, for some sort of member list application. If I'm doing something that actually requires all members at the same time (think the CARE Power Circles, or some sort of simple data syncing tool -- these things don't ALWAYS have to be able widgets!), I would simply show a "processing" doohicky for the user, since 12345 has 9126 members and I can only retrieve 500 at a time I have to run 19 serialized queries to fully populate an array or whatever and I can easily map that progress to a percent complete meter to make the UI clean. Anyway, that's just one possible idea....

    At the very least, is seems reasonable to ask that Convio place their hard-stop max on the API documentation page and just change it there when they change it by making updating the document part of the business process required to change that value.

    Just realized..... this method DOES supply the total group member count already, along with the number returned. So, if my first query was max_number = 1 I can use it to pull the membership count. That still doesn't provide a solution to how I can actually get a list of all members in a given group regardless of size...

  • JeffMills :

    It isn't documented because it is subject to change by the IT staff in case allowing too many affects performance. I think the default value is 1,000 but I don't know whether IT have changed it.

    Is there any other ways to get all the members of a given group Id no matter the size? I was told we can't get this information down via Razors Edge, so the API seems to be the only way to get group membership information down into our systems. Is this true?

  • Michael :

    Just realized..... this method DOES supply the total group member count already, along with the number returned. So, if my first query was max_number = 1 I can use it to pull the membership count. That still doesn't provide a solution to how I can actually get a list of all members in a given group regardless of size...

    (just noticed that the REAL max_number value is still not on the API site...)

    Is it still only 1000?

  • Michael :

    (just noticed that the REAL max_number value is still not on the API site...)

    Is it still only 1000?

    should be, unless convio IT has changed it for your site. Last time i tried to fetch a list from a really large group I only got 1000 back.

  • Michael :

    (just noticed that the REAL max_number value is still not on the API site...)

    Is it still only 1000?

    It is 1000.

    http://community.customer.convio.com/docs/DOC-2284

Categories