EasySteps Public API (1.0.0)

OpenAPI documentation for the public HTTP API for EasyStepsGO. It is written in OpenAPI 3 so tools can render reference docs and generate clients; the API itself 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 (Laravel Sanctum). Create it from the Organization Settings page in the EasyStepsGO web app (app.easystepsgo.io/my-organization). The token must have the public-api ability, and the authenticated user must be an administrator of that organization’s team.

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.

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 (type + id only).

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": { }
}

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 locations (geocoding on create). No collection index or PATCH update.

Create stakeholder location

Requires attributes.address (non-empty after trim). Server geocodes the address and sets lat, long, country, and meta; clients must not send those fields (they are rejected).

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 whose organization_id matches 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 (partial PATCH supported per JSON:API merge semantics). 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 path on the S3 disk.

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