diff --git a/doc/api.md b/doc/api.md
index 2700d0264..be1e07cb9 100644
--- a/doc/api.md
+++ b/doc/api.md
@@ -19,6 +19,7 @@ limitations under the License.
1. [Introduction](#intro)
2. [Errors](#errorobj)
+ - 2.1 [Error Properties](#properror)
3. [Oracledb Class](#oracledbclass)
- 3.1 [Oracledb Constants](#oracledbconstants)
- ARRAY
@@ -159,19 +160,27 @@ If an invalid value is set for a property, then the *Error* object is
thrown by the driver. The same is true for a read operation on a
write-only property.
-The *Error* object contains a message string in the format:
+### 2.1 Error Properties
+
+The *Error* object contains a message property.
```
--:
+String message
```
+The text of the error message.
+
+The error may be a standard Oracle message with a prefix like ORA or
+PLS. Alternatively it may be a driver specific error prefixed with
+NJS or DPI.
+
A single line error message may look like this:
```
ORA-01017: invalid username/password; logon denied
```
-An error message may be multi-line, like this:
+A multi-line error message may look like this:
```
ORA-06550: line 1, column 7:
@@ -180,15 +189,6 @@ ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
```
-### 2.1 Error Properties
-
-```
-String message
-```
-
-The text of the error message. The error may be a standard Oracle
-message with a prefix like ORA or PLS. Alternatively it may be a
-driver specific error prefixed with NJS or DPI.
## 3. Oracledb Class