diff --git a/doc/man/man3/slurm_spawn.3 b/doc/man/man3/slurm_spawn.3
index cfd931c7bcd0fa1af6d140c443ca69237ad16078..00edf2fa77242b6029bc23bb6d83a43fab8db786 100644
--- a/doc/man/man3/slurm_spawn.3
+++ b/doc/man/man3/slurm_spawn.3
@@ -80,7 +80,9 @@ Signal to be sent to the spawned tasks.
 .LP
 \fBslurm_step_ctx_create\fR Create a job step context. To avoid memory 
 leaks call \fBslurm_step_ctx_destroy\fR when the use of this context is
-finished.
+finished. NOTE: this function creates a slurm job step. Call \fBslurm_spawn\fR 
+in a timely fashion to avoid having job step credentials time out. If
+\fBslurm_spawn\fR is not used, explicitly cancel the job step. 
 .LP
 \fBslurm_step_ctx_get\fR Get values from a job step context.
 \fIctx_key\fP identifies the fields to be gathered from the job step context.
@@ -125,6 +127,10 @@ Accepts two additional arguments, the first of type int and
 the second of type char **. By default the current environment 
 variables are copied to started task's environment.
 .TP
+\fBSLURM_STEP_CTX_STEPID\fR
+Get the step id of the created job step.
+Accepts one additional argument of type uint32_t *.
+.TP
 \fBSLURM_STEP_CTX_TASKS\fR
 Get the number of tasks per node for a given job.
 Accepts one additional argument of type uint32_t **. 
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index ea4f0cd4031e2ee4ee8bd5f921bc7380f02ca2c7..3a469040b791f6331ce4ed064ed39853368884bf 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -168,6 +168,7 @@ enum ctx_keys {
 	SLURM_STEP_CTX_ARGS,	/* set argument count and values */
 	SLURM_STEP_CTX_CHDIR,	/* set directory to run from */
 	SLURM_STEP_CTX_ENV,	/* set environment variable count and values */
+	SLURM_STEP_CTX_STEPID,	/* get the created job step id */
 	SLURM_STEP_CTX_TASKS,	/* get array of task count on each node */
 	SLURM_STEP_CTX_TID	/* get array of task IDs for specified node */
 };