diff --git a/API_doc.md b/API_doc.md
new file mode 100644
index 0000000..e3de039
--- /dev/null
+++ b/API_doc.md
@@ -0,0 +1,24 @@
+# Ultimate-SpMV interface documentation
+
+## Introduction
+The interface for USpMV is a single header file, interface.hpp, which contains everything you need.
+As it currently stands, the functions in the API don't have or need any awareness of MPI. The organization of communication information should be done by the host application, and these routines are used on each MPI process locally.
+
+## Structs
+- MtxData is the COO matrix structure, e.g. which is read into from an .mtx file.
+- ScsData is the SELL-C-sigma matrix structure, e.g. which returned after a COO matrix has been processed with the convert_to_scs function.
+
+## Functions
+- convert_to_scs
+ - Main routine. Converts a COO matrix (in this case, stored in the MtxData struct) into a Sell-C-sigma matrix. Parametarized by C and sigma.
+- apply_permutation
+ - Useful function to apply a permutation (e.g. the permutation vector obtained from permuting the rows/columns of your Sell-C-simga matrix) to a vector (e.g. the x vector for computing Ax=y)
+- permute_scs_cols
+ - Permute the columns of your Sell-C-sigma matrix, i.e. for symmetric permutations
+- spmv_omp_scs
+ - The Sell-C-sigma SpMV kernel.
+- spmv_omp_csr
+ - A CRS format SpMV kernel to use as a reference.
+
+## Notes
+- GPGPU support coming soon
\ No newline at end of file
diff --git a/README.md b/README.md
index 963a85c..cd6696b 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
# Ultimate-SpMV
## MPI+X SpMV with SELL-C-sigma format
+Can be run as a standalone benchmarking harness, or as a library. See API_doc.md for information about the interface.
+
Example:\
```mpirun -n 4 ./uspmv .mtx ```