It is possible to pretty-print an XML string via a streaming transformation with XmlWriter.WriteNode(XmlReader, true).  This method
copies everything from the reader to the writer and moves the reader to the start of the next sibling.
Define the following extension methods:
public static class XmlExtensions
{
    public static string FormatXml(this string xml, bool indent = true, bool newLineOnAttributes = false, string indentChars = "  ", ConformanceLevel conformanceLevel = ConformanceLevel.Document) => 
        xml.FormatXml( new XmlWriterSettings { Indent = indent, NewLineOnAttributes = newLineOnAttributes, IndentChars = indentChars, ConformanceLevel = conformanceLevel });
    public static string FormatXml(this string xml, XmlWriterSettings settings)
    {
        using (var textReader = new StringReader(xml))
        using (var xmlReader = XmlReader.Create(textReader, new XmlReaderSettings { ConformanceLevel = settings.ConformanceLevel } ))
        using (var textWriter = new StringWriter())
        {
            using (var xmlWriter = XmlWriter.Create(textWriter, settings))
                xmlWriter.WriteNode(xmlReader, true);
            return textWriter.ToString();
        }
    }
}
And now you will be able to do:
var inXml = @"<?xml version='1.0'?><response><error code='1'> Success</error></response>";
var newXml = inXml.FormatXml(indentChars : "", newLineOnAttributes : false); // Or true, if you prefer
Console.WriteLine(newXml);
Which prints
<?xml version='1.0'?>
<response>
<error code="1"> Success</error>
</response>
Notes:
- Other answers load the XML into some Document Object Model such as - XmlDocumentor- XDocument/- XElement, then re-serialize the DOM with indentation enabled.
 - This streaming solution completely avoids the added memory overhead of a DOM. 
- In your question you do not add any indentation for the nested - <error code='1'> Success</error>node, so I set- indentChars : "".  Generally an indentation of two spaces per level of nesting is customary.
 
- Attribute delimiters will be unconditionally transformed to double-quotes if currently single-quotes.  (I believe this is true of other answers as well.) 
- Passing - conformanceLevel : ConformanceLevel.Fragmentallows strings containing sequences of XML fragments to be formatted.
 
- Other than - ConformanceLevel.Fragment, the input XML string must be well-formed.  If it is not,- XmlReaderwill throw an exception.
 
Demo fiddle here.