@NS_92501 Thank you for reaching back out with this additional information!
Typically, if you are seeing repeat items in the results, it is typically due to missing header parameters expected in the call or a misconfigured body of the call. To help address these concerns, I went ahead and included below an example URL with additional parameters for $o. This will add sort order to the results returned by the call which will ensure a deterministic ordering is used based on Criteria. For this call, I selected AssetTag, but you could use SerialNumber instead if you wanted! ASC has also been added to the end to designate ascending order.
(SITE).incidentiq.com/api/v1.0/assets/?$s=50&$p=1&$o=AssetTag%20ASC
In addition to the API URL changes though, you will also want to ensure that the body of the POST call is similar to the one included below. This particular Body should return all enabled assets for your district:
{"OnlyShowDeleted":false,"Filters":[{"Facet":"ParentAsset","Id":null}],"FilterByViewPermission":true}
Best Regards,
Drew