The following is an example in C# of retrieving status information for given set of URLs through the SOAP API:
SearchCollectionUrlStatusQuery query = new SearchCollectionUrlStatusQuery(); query.collection = COLLECTION; query.crawlurlstatus = new SearchCollectionUrlStatusQueryCrawlurlstatus(); query.crawlurlstatus.crawlurlstatus = new crawlurlstatus(); query.crawlurlstatus.crawlurlstatus.limit = 100; query.crawlurlstatus.crawlurlstatus.limitSpecified = true; query.forcesync = true; crawlurlstatusfilter filter = new crawlurlstatusfilter(); filter.name = crawlurlstatusfilterName.url; filter.nameSpecified = true; filter.comparison = crawlurlstatusfilterComparison.wc; filter.comparisonSpecified = true; filter.value = "*"; query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation = new crawlurlstatusfilteroperation(); query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.name = crawlurlstatusfilteroperationName.and; query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.nameSpecified = true; query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.Items = new crawlurlstatusfilter[1]; query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.Items[0] = filter; SearchCollectionUrlStatusQueryResponse sr = port.SearchCollectionUrlStatusQuery(query); if (sr.crawlurlstatusresponse.errorSpecified && sr.crawlurlstatusresponse.error == crawlurlstatusresponseError.invalid) { } else if (sr.crawlurlstatusresponse.errorSpecified && sr.crawlurlstatusresponse.error == crawlurlstatusresponseError.database) { } else { if (sr.crawlurlstatusresponse.crawlurl != null) { foreach (crawlurl curl in sr.crawlurlstatusresponse.crawlurl) { if (curl.stateSpecified) { if (curl.state == crawlurlState.error) { System.Console.WriteLine("error: " + curl.url); } else if (curl.state == crawlurlState.warning) { System.Console.WriteLine("warning: " + curl.url); } } if (curl.log != null) { foreach (logmessage msg in curl.log.Items) { } } } } }