Exporting list of URLsCore Service performance of GetList() vs GetListXml() methods

How can an organ that provides biological immortality be unable to regenerate?

Why is participating in the European Parliamentary elections used as a threat?

Do I need to convey a moral for each of my blog post?

Nested Dynamic SOQL Query

What is the difference between something being completely legal and being completely decriminalized?

Writing in a Christian voice

Why are there no stars visible in cislunar space?

If I cast enlarge/reduce on an arrow, what weapon could it count as?

Turning a hard to access nut?

Bandwidth limit Cisco 3400 ME problem

What will the french man say?

How much propellant is used up until liftoff?

Don't understand why (5 | -2) > 0 is False where (5 or -2) > 0 is True

Animating wave motion in water

How to test the sharpness of a knife?

What is it called when someone votes for an option that's not their first choice?

bash sort -g does not work properly

When did hardware antialiasing start being available?

Is xar preinstalled on macOS?

Why does Surtur say that Thor is Asgard's doom?

How are passwords stolen from companies if they only store hashes?

TDE Master Key Rotation

Is there any common country to visit for uk and schengen visa?

label a part of commutative diagram



Exporting list of URLs


Core Service performance of GetList() vs GetListXml() methods













3















In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



Thank you,









share







New contributor




KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    3















    In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



    We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



    Thank you,









    share







    New contributor




    KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      3












      3








      3








      In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



      We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



      Thank you,









      share







      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



      We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



      Thank you,







      importexportservice





      share







      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Mar 12 at 14:53









      KJHKJH

      162




      162




      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          2 Answers
          2






          active

          oldest

          votes


















          6














          There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



          Something like the following code (which outputs a CSV) should give you a good start:



          void Main()

          List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
          foreach (PageData page in allPages)

          OutputPageDetails(page.Id);



          void OutputPageDetails(string pageId)

          PageData page = (PageData)Client.Read(pageId, null);
          string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
          Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



          (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






          share|improve this answer

























          • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

            – Rick Pannekoek
            Mar 12 at 18:58











          • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

            – Rick Pannekoek
            Mar 12 at 19:01











          • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

            – Jonathan Williams
            Mar 12 at 19:32











          • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

            – Jonathan Williams
            Mar 12 at 19:48












          • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

            – Rick Pannekoek
            Mar 12 at 19:57



















          3














          Actually Jonathan's answer is just part of the solution. You should create 2 lists:



          1. first list is the list created using Core Service API and this list
            is the list of URLs for pages that CM side thinks that are
            published.

          2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

          In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



          • Create both lists

          • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "485"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            KJH is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftridion.stackexchange.com%2fquestions%2f19871%2fexporting-list-of-urls%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            6














            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






            share|improve this answer

























            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              Mar 12 at 18:58











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              Mar 12 at 19:01











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              Mar 12 at 19:32











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              Mar 12 at 19:48












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              Mar 12 at 19:57
















            6














            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






            share|improve this answer

























            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              Mar 12 at 18:58











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              Mar 12 at 19:01











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              Mar 12 at 19:32











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              Mar 12 at 19:48












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              Mar 12 at 19:57














            6












            6








            6







            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






            share|improve this answer















            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Mar 12 at 19:31

























            answered Mar 12 at 15:41









            Jonathan WilliamsJonathan Williams

            13.1k1753




            13.1k1753












            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              Mar 12 at 18:58











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              Mar 12 at 19:01











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              Mar 12 at 19:32











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              Mar 12 at 19:48












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              Mar 12 at 19:57


















            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              Mar 12 at 18:58











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              Mar 12 at 19:01











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              Mar 12 at 19:32











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              Mar 12 at 19:48












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              Mar 12 at 19:57

















            Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

            – Rick Pannekoek
            Mar 12 at 18:58





            Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

            – Rick Pannekoek
            Mar 12 at 18:58













            I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

            – Rick Pannekoek
            Mar 12 at 19:01





            I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

            – Rick Pannekoek
            Mar 12 at 19:01













            Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

            – Jonathan Williams
            Mar 12 at 19:32





            Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

            – Jonathan Williams
            Mar 12 at 19:32













            That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

            – Jonathan Williams
            Mar 12 at 19:48






            That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

            – Jonathan Williams
            Mar 12 at 19:48














            The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

            – Rick Pannekoek
            Mar 12 at 19:57






            The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

            – Rick Pannekoek
            Mar 12 at 19:57












            3














            Actually Jonathan's answer is just part of the solution. You should create 2 lists:



            1. first list is the list created using Core Service API and this list
              is the list of URLs for pages that CM side thinks that are
              published.

            2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

            In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



            • Create both lists

            • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





            share|improve this answer



























              3














              Actually Jonathan's answer is just part of the solution. You should create 2 lists:



              1. first list is the list created using Core Service API and this list
                is the list of URLs for pages that CM side thinks that are
                published.

              2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

              In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



              • Create both lists

              • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





              share|improve this answer

























                3












                3








                3







                Actually Jonathan's answer is just part of the solution. You should create 2 lists:



                1. first list is the list created using Core Service API and this list
                  is the list of URLs for pages that CM side thinks that are
                  published.

                2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

                In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



                • Create both lists

                • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





                share|improve this answer













                Actually Jonathan's answer is just part of the solution. You should create 2 lists:



                1. first list is the list created using Core Service API and this list
                  is the list of URLs for pages that CM side thinks that are
                  published.

                2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

                In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



                • Create both lists

                • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 12 at 18:53









                Marko MilicMarko Milic

                4,84121245




                4,84121245




















                    KJH is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    KJH is a new contributor. Be nice, and check out our Code of Conduct.












                    KJH is a new contributor. Be nice, and check out our Code of Conduct.











                    KJH is a new contributor. Be nice, and check out our Code of Conduct.














                    Thanks for contributing an answer to Tridion Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftridion.stackexchange.com%2fquestions%2f19871%2fexporting-list-of-urls%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    -importexportservice

                    Popular posts from this blog

                    Word for a person who has no opinion about whether god existsWord for having a definite opinion while simultaneously withholding judgment?What's the opposite of “newcomer? Is ”veteran" OK?What do you call an “atheist” who might believe in an afterlife?What's a word for someone who wants to voice opinions but not have them challenged?Word for someone who dismisses contrary opinions as irrational?Somone who thinks they are overly special/out of the ordinaryIs there a word, phrase or idiom for “a person who is incapable of thinking about the future”?The belief that a god is human-likeA word for a non-famous person/thing you have heard a lot aboutAdjective for a person who enjoys taking care of their appearance

                    What was this official D&D 3.5e Lovecraft-flavored rulebook?What was this set of RPG tools called?As a first-time DM should I let my players play complex character classes and roles?Nymph's Kiss and the RelationshipWhat was the name of this Cleric Prestige Class that shapes metal with its bare hands?Are the 3.5e Dragonlance books third party or official works?What's up with the domain Vile Darkness?What was this 80s book about RPGs?What was the name of this Werewolf band?What book had Rituals to “upgrade” animal companions to keep them viable at higher levels?What was this RPG that had rules for player-owned businesses?

                    2017 IndyCar Series Contents Series news Teams and drivers Schedule Season summary Footnotes References External links Navigation menu"INDYCAR: Initial 2018 bodywork concepts unveiled"the original"IndyCar confirms switch to Performance Friction brakes in 2017""AJ Foyt Racing will switch to Chevy"the original"Carlos Munoz, Conor Daly will drive for AJ Foyt Racing""Zach Veach's Indy 500 Debut Confirmed with Foyt""No mass exodus from Honda after Ganassi switch""Ex-F1 driver Sato joins Andretti Autosport for 2017 IndyCar season""IndyCar's Ryan Hunter-Reay, sponsor DHL paired through 2020""hhgregg and Andretti Autosport announce partnership for key races in 2016""INDYCAR: Rossi re-signs with Andretti"the original"McLaren Formula 1 - Fernando Alonso to race at Indy 500 with McLaren, Honda and Andretti Autosport""Shank will finally take part in Indy 500 with Harvey, Andretti | MotorSportsTalk""Andretti adds Jack Harvey to Indy 500 field""Ganassi switches to Honda power for 2017""INDYCAR: Chilton returns to Ganassi"the original"IndyCar silly season: Who's going where in 2017?""INDYCAR: Kanaan, NTT Data return to Ganassi"the original"Kimball to remain at Ganassi for 2017""Coyne confirms Bourdais for 2017 IndyCar season""Davison to sub for Bourdais in Indy 500"the original"Gutierrez confirmed for Detroit IndyCar debut""Gutierrez returns with Coyne for rest of 2017 season""Vautier to drive for Coyne at Texas"the original"INDYCAR: Coyne confirms Jones for 2017"the original"Pippa Mann returns to Coyne for Indy 500""Karam, Dreyer & Reinbold teaming up again for Indianapolis 500""Pigot to return to Ed Carpenter Racing""Hildebrand confirmed as full-time Ed Carpenter driver""Veach to replace injured Hildebrand at Barber"the originalNew Team Harding Racing Enters Chaves for 101st Indianapolis 500"Juncos Racing Announces Entry in 101st Running of the Indianapolis 500 :: Juncos Racing""Juncos confirms Pigot for Indy 500""Saavedra confirmed in Juncos' second 500 entry"the original"Lazier confirms Indy 500 run after son's USF2000 debut"the original"Claman DeMelo to race for RLLR at Sonoma"the original"Rahal signs Servia and ace engineer for 2017""IndyCar: Aleshin returns with Schmidt"the original"Aleshin replaced by Saavedra for Toronto""Jack Harvey will pilot SPM No. 7 car at Watkins Glen, Sonoma""Jay Howard confirmed in Tony Stewart's supported SPM Indy entry""INDYCAR: Newgarden to wave the flag at Penske"the original"Pagenaud opts for No. 1 in 2017"the original"Penske confirms Newgarden for 2017""Montoya to stay with Team Penske in 2017""Target leaving IndyCar after 27 seasons with Chip Ganassi""Cavin: IndyCar could see complete driver/team shakeup in 2017""End of the road for KV Racing?""KV Racing confirms closure, equipment sold to Juncos""Juncos confirms IndyCar Series entry"the original"Juncos readies IndyCar program, aims for '17 500"the original"Harding Racing to add Texas, Pocono to schedule"the original"Sato signs with Andretti Autosport for 2017""INDYCAR: Aleshin in Doubt at SPM"the original"Long Beach notebook: JR Hildebrand breaks hand""Hildebrand cleared to return at Phoenix"the original"Bourdais to undergo surgery on multiple fractures""Aleshin loses Schmidt Peterson IndyCar ride""Saavedra in at SPM for Pocono, Gateway"the original"Bourdais to make return at Gateway"the original"The IndyCar Grand Prix no longer is sponsored by Angie's List""2017 IndyCar Series rulebook""2017 Verizon IndyCar Series Official Rulebook"Official websiteeeeee