EasySteps Public API (1.0.0)

Documentation for the public HTTP API for EasyStepsGO. The API follows the JSON:API specification (media type application/vnd.api+json, version 1.0). All operations listed here are served under /api/public-v1.

Authentication: Bearer token. Create it from the Organization Settings page in the EasyStepsGO web app (app.easystepsgo.io/my-organization).

Errors: Validation and domain errors use JSON:API error documents (errors[] with status, title, detail, optional source.pointer).

Note: lat / long on locations and similar decimals may appear as strings in JSON responses.

Stakeholders

Stakeholder collection and resource; related resources and relationship linkage URLs.

List stakeholders

Paginated list of stakeholders for the authenticated organization.

Authorizations:
bearerAuth
query Parameters
include
string
Example: include=locations,custom-fields

Comma-separated relationship paths to include in included. Examples for stakeholders: locations, custom-fields, stakeholder-notes, stakeholder-files, stakeholder-requests, stakeholder-action-plans, category (and other registered includes).

sort
string
Example: sort=name

Sort fields (comma-separated). Registered sortable attributes include email, name, organization_name, created_at, updated_at (prefix with - for descending).

page[number]
integer >= 1

Page number for stakeholder index (JSON:API page object).

page[size]
integer >= 1

Page size for stakeholder index.

filter[id]
string

Comma-separated stakeholder ids to filter the index (WhereIdIn).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": [
    ],
  • "included": [
    ],
  • "links": { },
  • "meta": { }
}

Create stakeholder

Creates a stakeholder. Optional custom_fields in attributes creates nested custom field rows. If custom_fields was provided, the 201 response typically includes those resources under included (effective include=custom-fields is merged server-side). You may also pass include for other relationships (e.g. locations); server merges custom-fields when applicable.

File custom fields: upload each file first with
POST /public-v1/stakeholders/-actions/custom-field-file-upload (multipart field file), then include an entry with field_type: file and value set to the returned meta.data.path. See that operation and schema StakeholderAttributes.custom_fields for validation rules, org scoping, and 24-hour expiry of unused temp uploads.

Authorizations:
bearerAuth
query Parameters
include
string
Example: include=locations,custom-fields

Comma-separated relationship paths to include in included. Examples for stakeholders: locations, custom-fields, stakeholder-notes, stakeholder-files, stakeholder-requests, stakeholder-action-plans, category (and other registered includes).

Request Body schema: application/vnd.api+json
required
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    },
  • "included": [
    ]
}

Get stakeholder

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

query Parameters
include
string
Example: include=locations,custom-fields

Comma-separated relationship paths to include in included. Examples for stakeholders: locations, custom-fields, stakeholder-notes, stakeholder-files, stakeholder-requests, stakeholder-action-plans, category (and other registered includes).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    },
  • "included": [
    ]
}

Update stakeholder

The custom_fields attribute must not be sent on update (422 if present).

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

query Parameters
include
string
Example: include=locations,custom-fields

Comma-separated relationship paths to include in included. Examples for stakeholders: locations, custom-fields, stakeholder-notes, stakeholder-files, stakeholder-requests, stakeholder-action-plans, category (and other registered includes).

Request Body schema: application/vnd.api+json
required
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    },
  • "included": [
    ]
}

Delete stakeholder

Deletes the stakeholder.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

List locations (related resource)

Full stakeholder-locations resources for this stakeholder.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": [
    ]
}

Locations relationship linkage

Resource identifier objects for the locations relationship.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": [
    ],
  • "links": { }
}

List custom fields (related resource)

Full custom-fields resources linked to this stakeholder.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": [
    ]
}

Custom fields relationship linkage

Resource identifier objects for the custom-fields relationship.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": [
    ],
  • "links": { }
}

Stakeholder category (related resource)

Full stakeholder-categories resource linked to this stakeholder.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    }
}

Category relationship linkage

Resource identifier object for the category relationship.

Authorizations:
bearerAuth
path Parameters
stakeholder
required
string

Stakeholder id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    },
  • "links": { }
}

Upload file for stakeholder custom fields (temporary)

Multipart upload used to stage a file before creating a stakeholder with a file-type custom field.

Send a single part named file. Allowed types include common images, PDF, Office documents, CSV, and plain text. Maximum upload size is 50 MB.

The JSON:API response meta.data.path is the S3 key you must pass as attributes.custom_fields[].value when field_type is file on POST /public-v1/stakeholders.

Uploaded files that are not linked to a created stakeholder are removed automatically after 24 hours. Each upload must be used with a distinct S3 object key if you send multiple file custom fields in one create request.

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
required
file
required
string <binary>

File to upload (field name must be file).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "meta": {
    }
}

Stakeholder categories

Global stakeholder category lookup (read-only). Use for resolving category on stakeholders and for include=category on stakeholder reads.

List stakeholder categories

Global lookup values for stakeholder category (read-only). Supports JSON:API pagination (page[number], page[size]) and filter[id] (comma-separated ids).

Authorizations:
bearerAuth
query Parameters
page[number]
integer >= 1

Page number for stakeholder index (JSON:API page object).

page[size]
integer >= 1

Page size for stakeholder index.

filter[id]
string

Comma-separated stakeholder category ids to filter the index (WhereIdIn).

sort
string
Example: sort=title

Sort fields (comma-separated). Registered sortable attributes includes title (prefix with - for descending).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": [
    ],
  • "links": { }
}

Get stakeholder category

Authorizations:
bearerAuth
path Parameters
stakeholder_category
required
string

Stakeholder category id (JSON:API resource id).

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    }
}

Stakeholder locations

Create, read, and delete stakeholder locations.

Create stakeholder location

Requires attributes.address (non-empty).

Authorizations:
bearerAuth
Request Body schema: application/vnd.api+json
required
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    }
}

Get stakeholder location

Authorizations:
bearerAuth
path Parameters
stakeholder_location
required
string

Stakeholder location id.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    }
}

Delete stakeholder location

Authorizations:
bearerAuth
path Parameters
stakeholder_location
required
string

Stakeholder location id.

Responses

Related stakeholder resource

Returns the parent stakeholder as the primary data resource.

Authorizations:
bearerAuth
path Parameters
stakeholder_location
required
string

Stakeholder location id.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    },
  • "included": [
    ]
}

Stakeholder relationship linkage

Authorizations:
bearerAuth
path Parameters
stakeholder_location
required
string

Stakeholder location id.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    },
  • "links": { }
}

Custom fields

Read, update, and delete custom field records scoped to the token’s organization.

Get custom field

Scoped to custom fields for the token’s organization.

Authorizations:
bearerAuth
path Parameters
custom_field
required
string

Custom field id.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    }
}

Update custom field

Updatable attributes: name, value. field_type is read-only; sending a different field_type in the request document yields 422. For field_type: file, a new non-empty value must refer to an existing S3 object key.

Authorizations:
bearerAuth
path Parameters
custom_field
required
string

Custom field id.

Request Body schema: application/vnd.api+json
required
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "jsonapi": {
    },
  • "data": {
    }
}

Delete custom field

Authorizations:
bearerAuth
path Parameters
custom_field
required
string

Custom field id.

Responses