diff --git a/examples/inputs.rs b/examples/inputs.rs
new file mode 100644
index 00000000..be4e9e3b
--- /dev/null
+++ b/examples/inputs.rs
@@ -0,0 +1,19 @@
+/// A small demonstration of the Input API.
+/// This prints embedded bytes with a custom header and then reads from STDIN.
+use bat::{Input, PrettyPrinter};
+
+fn main() {
+    PrettyPrinter::new()
+        .header(true)
+        .grid(true)
+        .line_numbers(true)
+        .inputs(vec![
+            Input::from_bytes(b"echo 'Hello World!'")
+                .name("embedded.sh")
+                .title("An embedded shell script.")
+                .kind("Embedded"),
+            Input::from_stdin().title("Standard Input").kind("FD"),
+        ])
+        .print()
+        .unwrap();
+}
diff --git a/examples/yaml.rs b/examples/yaml.rs
index b504e424..78df2464 100644
--- a/examples/yaml.rs
+++ b/examples/yaml.rs
@@ -1,5 +1,5 @@
 /// A program that serializes a Rust structure to YAML and pretty-prints the result
-use bat::PrettyPrinter;
+use bat::{Input, PrettyPrinter};
 use serde::Serialize;
 
 #[derive(Serialize)]
@@ -29,7 +29,7 @@ fn main() {
         .line_numbers(true)
         .grid(true)
         .header(true)
-        .input_from_bytes_with_name(&bytes, "person.yaml")
+        .input(Input::from_bytes(&bytes).name("person.yaml").kind("File"))
         .print()
         .unwrap();
 }