API Reference

Complete reference of all Layer5 Cloud REST API endpoints

Layer5 Cloud REST API reference

This reference is generated from the OpenAPI schema used by the Layer5 docs.

  • 31resources
  • 220endpoints

Resources

Showing all endpoints.

Ready to explore

Select an endpoint

Open a resource, choose a tag, and pick an endpoint to view its request and response details here.

Academy GET

/api/academy/admin/registrations

Get academy registrations

Returns a list of academy registrations with user, curricula, and pagination details.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/admin/registrations

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/admin/registrations

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/admin/registrations

Parameters

Query parameters

NameTypeRequiredDescription
pageSizeintegerNoNumber of results per page
pagesizeintegerNoNumber of results per page. Deprecated alias of pageSize.
pageintegerNoPage number
contentTypearray of stringNoFilter by content types
statusarray of stringNoFilter by registration status

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
List of registrations with pagination info

application/json

FieldTypeRequiredDescription
dataarray of objectYesThe data of the curricularegistrationsresponse.
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
totalCountinteger (int64)YesTotal number of items available.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error
Academy GET

/api/academy/admin/summary

Get academy content summary

Returns a summary of all academy content with metrics.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/admin/summary

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/admin/summary

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/admin/summary

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A list of content with total count and registration metrics

application/json

Aggregate metrics for the instructor console, mirroring the deployed handler’s InstructorConsoleSummary struct.
FieldTypeRequiredDescription
curriculaarray of objectNoPer-content-type registration counts.
curriculaListobjectNoCurricula with metrics for the organization.
orgConfigobjectNoAcademy module configuration for the organization.
registrationsSummaryarray of objectNoPer-status registration counts.
testsarray of objectNoPer-test outcome counts.
testsSummaryobjectNoAggregate test outcomes across the organization.
totalActiveLearnersintegerNoLearners with at least one active registration.
totalLearnersintegerNoTotal distinct learners registered for the organization.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error
Academy GET

/api/academy/certificates/{certificateId}

Get a certificate by ID

Returns a certificate identified by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/certificates/{certificateId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/certificates/{certificateId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/certificates/{certificateId}

Parameters

Path parameters

NameTypeRequiredDescription
certificateIdstringYesThe ID of the certificate to retrieve

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A single certificate

application/json

FieldTypeRequiredDescription
descriptionstringYesDescription of the certificate
expirationDatestring (date-time)NoDate when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.
expiresInintegerNoNumber of months after which the certificate expires
idstring (uuid)YesUnique identifier for the certificate
issuedDatestring (date-time)YesDate when the certificate was issued
issuingAuthoritiesarray of objectYesList of issuing authorities for the certificate
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
recipientIdstring (uuid)YesID of the recipient (user) who received the certificate
recipientNamestringYesName of the recipient (user) who received the certificate
titlestringYesTitle of the certificate
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Certificate not found
500
Server error
Academy GET

/api/academy/curricula

Get academy content

Returns a list of academy content with optional filtering.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula

Parameters

Query parameters

NameTypeRequiredDescription
contentTypearray of stringNoFilter content by content types
visibilityarray of stringNoFilter content by visibility (public/private)
levelarray of stringNoFilter content by difficulty level
orgIdarray of stringNoFilter content by organization IDs
categoryarray of stringNoFilter content by categories
statusarray of stringNoFilter by registration status
searchstringNoSearch content by title
sortstringNoSort results by a specific field (e.g., title, createdAt)
orderstringNoOrder of sorting (asc or desc)
pageSizeintegerNoNumber of results per page
pagesizeintegerNoNumber of results per page. Deprecated alias of pageSize.
pageintegerNoPage number

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A list of content with total count

application/json

FieldTypeRequiredDescription
dataarray of objectYesThe data of the academycurriculawithmetricslistresponse.
totalintegerYesTotal number of Curricula
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error
Academy POST

/api/academy/curricula

Create a new academy curricula

Creates a new academy curricula with the provided details.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula

Request body

application/json Required
FieldTypeRequiredDescription
accessExpiresAtstringNoExpiry time for curricula access
accessStatusstringYesCurrent access status of the curricula
badgeIdstring (uuid)NoID of the badge to be awarded on completion of this curricula
metadataobjectYesAdditional metadata about the Curricula
orgIdstringYesOrganization ID that owns this learning path
teamIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
titlestringYesTitle of the curricula
typestringYesType of the curricula
workspaceIdstringYesID of the workspace to which this Curricula belongs

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
created the curricula

application/json

AcademyCurricula entity schema.
FieldTypeRequiredDescription
badgeIdstring (uuid)NoID of the badge to be awarded on completion of this curricula
createdAtstringYesWhen the Curricula item was created
deletedAtstringYesNo description provided.
idstring (uuid)YesId of the Curricula
inviteIdstringNoID of the invite associated with this Curricula
levelstringYesLevel of the Curricula
metadataobjectYesAdditional metadata about the Curricula
orgIdstringYesOrganization ID that owns this learning path
slugstringYesslug of the Curricula
statusstringYesStatus of the Curricula
typestringYesNo description provided.
updatedAtstringYesWhen the Curricula was last updated
visibilitystringYesVisibility of the Curricula
workspaceIdstringNoID of the workspace to which this Curricula belongs
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error
Academy GET

/api/academy/curricula/registered

Get academy content

Returns a list of academy content registered by the user with optional filtering.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula/registered

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula/registered

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula/registered

Parameters

Query parameters

NameTypeRequiredDescription
contentTypearray of stringNoFilter content by content types
orgIdarray of stringNoFilter content by organization IDs

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A list of content with total count

application/json

FieldTypeRequiredDescription
dataarray of objectYesThe data of the academycurriculalistresponse.
totalintegerYesTotal number of Curricula
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error
Academy POST

/api/academy/curricula/registrations/{id}/withdraw

Withdraw a user from academy content

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula/registrations/{id}/withdraw

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula/registrations/{id}/withdraw

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula/registrations/{id}/withdraw

Parameters

Path parameters

NameTypeRequiredDescription
idstringYesThe ID of the curricula

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
registered content

application/json

FieldTypeRequiredDescription
certificateobjectYesIssued certificate for completing the curricula under registration
contentIdstring (uuid)YesID of the course content
createdAtstring (date-time)YesWhen the registration was created
deletedAtstring (date-time)NoTimestamp when the resource was deleted.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
metadataobjectYesAdditional metadata about the registration
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
statusstringYesStatus of the user’s course registration
updatedAtstring (date-time)YesWhen the registration was updated
userIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Server error
Academy GET

/api/academy/curricula/{id}

Get a single academy curricula by ID

Returns a single academy curricula identified by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula/{id}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula/{id}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula/{id}

Parameters

Path parameters

NameTypeRequiredDescription
idstringYesThe ID of the curricula

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A single curricula

application/json

AcademyCurricula entity schema.
FieldTypeRequiredDescription
badgeIdstring (uuid)NoID of the badge to be awarded on completion of this curricula
createdAtstringYesWhen the Curricula item was created
deletedAtstringYesNo description provided.
idstring (uuid)YesId of the Curricula
invitationobjectNoInvitation entity schema.
inviteIdstringNoID of the invite associated with this Curricula
levelstringYesLevel of the Curricula
metadataobjectYesAdditional metadata about the Curricula
orgIdstringYesOrganization ID that owns this learning path
registrationCountnumberYesNumber of registrations associated with this curriculum.
slugstringYesslug of the Curricula
statusstringYesStatus of the Curricula
typestringYesNo description provided.
updatedAtstringYesWhen the Curricula was last updated
visibilitystringYesVisibility of the Curricula
workspaceIdstringNoID of the workspace to which this Curricula belongs
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Curricula not found
500
Server error
Academy PUT

/api/academy/curricula/{id}

Update an existing academy curricula by ID

Updates the details of an existing academy curricula identified by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula/{id}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula/{id}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula/{id}

Parameters

Path parameters

NameTypeRequiredDescription
idstringYesThe ID of the curricula

Request body

application/json Required
FieldTypeRequiredDescription
accessExpiresAtstringNoExpiry time for curricula access
accessStatusstringYesCurrent access status of the curricula
badgeIdstring (uuid)NoID of the badge to be awarded on completion of this curricula
metadataobjectYesAdditional metadata about the Curricula
orgIdstringYesOrganization ID that owns this learning path
teamIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
titlestringYesTitle of the curricula
typestringYesType of the curricula
workspaceIdstringYesID of the workspace to which this Curricula belongs

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
updated the curricula

application/json

AcademyCurricula entity schema.
FieldTypeRequiredDescription
badgeIdstring (uuid)NoID of the badge to be awarded on completion of this curricula
createdAtstringYesWhen the Curricula item was created
deletedAtstringYesNo description provided.
idstring (uuid)YesId of the Curricula
invitationobjectNoInvitation entity schema.
inviteIdstringNoID of the invite associated with this Curricula
levelstringYesLevel of the Curricula
metadataobjectYesAdditional metadata about the Curricula
orgIdstringYesOrganization ID that owns this learning path
registrationCountnumberYesNumber of registrations associated with this curriculum.
slugstringYesslug of the Curricula
statusstringYesStatus of the Curricula
typestringYesNo description provided.
updatedAtstringYesWhen the Curricula was last updated
visibilitystringYesVisibility of the Curricula
workspaceIdstringNoID of the workspace to which this Curricula belongs
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Curricula not found
500
Server error
Academy DELETE

/api/academy/curricula/{id}

Delete an academy curricula by ID

Deletes an existing academy curricula identified by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/curricula/{id}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/curricula/{id}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/curricula/{id}

Parameters

Path parameters

NameTypeRequiredDescription
idstringYesThe ID of the curricula

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Curricula deleted
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Curricula not found
500
Server error
Academy POST

/api/academy/register

Register a user to academy content

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/register

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/register

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/register

Request body

application/json Required
FieldTypeRequiredDescription
contentIdstring (uuid)YesID of the academy content to register for
contentTypestringNoNo description provided.
userIdstring (uuid)YesID of the user registering for the content.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
registered content

application/json

FieldTypeRequiredDescription
certificateobjectYesIssued certificate for completing the curricula under registration
contentIdstring (uuid)YesID of the course content
createdAtstring (date-time)YesWhen the registration was created
deletedAtstring (date-time)NoTimestamp when the resource was deleted.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
metadataobjectYesAdditional metadata about the registration
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
statusstringYesStatus of the user’s course registration
updatedAtstring (date-time)YesWhen the registration was updated
userIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error
Academy POST

/api/academy/registrations/test-sessions/start

Start a Test by ID

Starts a new test session for the quiz identified by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/registrations/test-sessions/start

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/registrations/test-sessions/start

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/registrations/test-sessions/start

Request body

application/json Required
FieldTypeRequiredDescription
registrationIdstring (uuid)YesID of the associated registration.
testAbsPathstringYesThe test abs path of the starttestrequest.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A single test

application/json

FieldTypeRequiredDescription
datestring (date)YesThe date of the quiz.
descriptionstringYesDescription of the quiz.
draftbooleanYesThe draft of the quiz.
filePathstringYesThe file path of the quiz.
finalbooleanYesIndicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path
idstringYesQuiz ID. Identifies a Hugo content page, not a database row, so it is an opaque content-scoped string. Not a UUID - stored records carry authored slugs.
lastmodstring (date)YesThe lastmod of the quiz.
layoutstringYesThe layout of the quiz.
maxAttemptsintegerYesMaximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.
nextPageobjectYesNo description provided.
orgIdstring (uuid)YesOrganization ID that owns this quiz
parentobjectNoNo description provided.
passPercentagenumber (float)YesThe pass percentage of the quiz.
permalinkstringYesThe permalink of the quiz.
prerequisitesarray of objectYesThe prerequisites of the quiz.
questionsarray of objectYesThe questions of the quiz.
relPermalinkstringYesThe rel permalink of the quiz.
sectionstringYesThe section of the quiz.
slugstringYesThe slug of the quiz.
timeLimitone of integer, stringYesTime limit for the quiz in minutes. A value of 0 indicates no time limit. Accepts a number or a string because both forms are real production data - the Hugo theme emits a JSON number, while payloads persisted by earlier revisions hold a string such as “25” or the non-numeric sentinel “infinite”. A string that does not parse to a positive number means “no time limit” and normalizes to 0.
titlestringYesThe title of the quiz.
totalMarksintegerYesThe total marks of the quiz.
totalQuestionsintegerYesThe total questions of the quiz.
totalQuestionSetsintegerYesThe total question sets of the quiz.
totalQuestionsInBankintegerYesThe total questions in bank of the quiz.
typestringYesType of the resource.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Quiz not found
500
Server error
Academy POST

/api/academy/registrations/test-sessions/submit

Submit a quiz for evaluation

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/registrations/test-sessions/submit

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/registrations/test-sessions/submit

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/registrations/test-sessions/submit

Request body

application/json Required
A learner’s answers to a quiz. Submitted as the submitQuiz request body and persisted verbatim as TestSubmission.submissionData. registrationId and userId are a convenience echo of the authoritative values on the enclosing TestSubmission (registrationId / userId, backed by the registration_id and owner uuid NOT NULL columns); read them from the enclosing submission, not from here.
FieldTypeRequiredDescription
answersarray of objectYesThe answers of the quizsubmission.
quizAbsPathstringYesThe quiz abs path of the quizsubmission.
registrationIdstring | null (uuid)NoID of the associated registration. Optional, because a submission may not carry this echo; when it is absent the authoritative value is TestSubmission.registrationId. Absence MUST be expressed as null or an omitted property - the empty string is not a valid identifier.
testSessionIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
userIdstring | null (uuid)NoID of the user who owns or created this resource. Optional, because a submission may not carry this echo; when it is absent the authoritative value is TestSubmission.userId. Absence MUST be expressed as null or an omitted property - the empty string is not a valid identifier.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Progress tracker updated

application/json

FieldTypeRequiredDescription
attemptedAtstring (date-time)YesThe attempted at of the quizevaluationresult.
attemptsintegerYesThe attempts of the quizevaluationresult.
correctSubmissionsobjectYesThe correct submissions of the quizevaluationresult.
passedbooleanYesThe passed of the quizevaluationresult.
passPercentagenumber (float)YesThe pass percentage of the quizevaluationresult.
percentageScorednumber (float)YesThe percentage scored of the quizevaluationresult.
quizobjectYesNo description provided.
scoreintegerYesThe score of the quizevaluationresult.
totalMarksintegerYesThe total marks of the quizevaluationresult.
400
Bad request

application/json

FieldTypeRequiredDescription
detailsstringNoThe details of the errorresponse.
errorstringNoThe error of the errorresponse.
401
Expired JWT token used or insufficient privilege

text/plain

500
Server error

application/json

FieldTypeRequiredDescription
detailsstringNoThe details of the errorresponse.
errorstringNoThe error of the errorresponse.
Academy GET

/api/academy/registrations/tests

Get test metadata

Returns metadata for test identified by its absolute path.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/registrations/tests

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/registrations/tests

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/registrations/tests

Parameters

Query parameters

NameTypeRequiredDescription
absPathstringYesThe absolute path of the test to retrieve

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A single test

application/json

FieldTypeRequiredDescription
datestring (date)YesThe date of the quiz.
descriptionstringYesDescription of the quiz.
draftbooleanYesThe draft of the quiz.
filePathstringYesThe file path of the quiz.
finalbooleanYesIndicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path
idstringYesQuiz ID. Identifies a Hugo content page, not a database row, so it is an opaque content-scoped string. Not a UUID - stored records carry authored slugs.
lastmodstring (date)YesThe lastmod of the quiz.
layoutstringYesThe layout of the quiz.
maxAttemptsintegerYesMaximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.
nextPageobjectYesNo description provided.
orgIdstring (uuid)YesOrganization ID that owns this quiz
parentobjectNoNo description provided.
passPercentagenumber (float)YesThe pass percentage of the quiz.
permalinkstringYesThe permalink of the quiz.
prerequisitesarray of objectYesThe prerequisites of the quiz.
questionsarray of objectYesThe questions of the quiz.
relPermalinkstringYesThe rel permalink of the quiz.
sectionstringYesThe section of the quiz.
slugstringYesThe slug of the quiz.
timeLimitone of integer, stringYesTime limit for the quiz in minutes. A value of 0 indicates no time limit. Accepts a number or a string because both forms are real production data - the Hugo theme emits a JSON number, while payloads persisted by earlier revisions hold a string such as “25” or the non-numeric sentinel “infinite”. A string that does not parse to a positive number means “no time limit” and normalizes to 0.
titlestringYesThe title of the quiz.
totalMarksintegerYesThe total marks of the quiz.
totalQuestionsintegerYesThe total questions of the quiz.
totalQuestionSetsintegerYesThe total question sets of the quiz.
totalQuestionsInBankintegerYesThe total questions in bank of the quiz.
typestringYesType of the resource.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Quiz not found
500
Server error
Academy GET

/api/academy/registrations/{contentId}

Get registration information for academy content

Returns registration data for a specific content item, optionally filtered by status.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/registrations/{contentId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/registrations/{contentId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/registrations/{contentId}

Parameters

Path parameters

NameTypeRequiredDescription
contentIdstringYesThe ID of the content to retrieve registration data for

Query parameters

NameTypeRequiredDescription
statusstringNoFilter registrations by status (e.g., registered, completed)

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Registration data for the specified content

application/json

FieldTypeRequiredDescription
certificateobjectYesIssued certificate for completing the curricula under registration
contentIdstring (uuid)YesID of the course content
createdAtstring (date-time)YesWhen the registration was created
deletedAtstring (date-time)NoTimestamp when the resource was deleted.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
metadataobjectYesAdditional metadata about the registration
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
statusstringYesStatus of the user’s course registration
updatedAtstring (date-time)YesWhen the registration was updated
userIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Content not found
500
Server error
Academy GET

/api/academy/registrations/{id}/test-sessions

Get all tests for a registration

Returns all tests associated with a specific registration ID for a user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/registrations/{id}/test-sessions

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/registrations/{id}/test-sessions

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/registrations/{id}/test-sessions

Parameters

Path parameters

NameTypeRequiredDescription
idstringYesThe ID of the registration to retrieve tests for

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize
testAbsPathstringNoFilter tests by absolute path

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A list of tests for the specified registration

application/json

400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Registration not found
500
Server error
Academy POST

/api/academy/registrations/{registrationId}/progress-tracker/update-current-item

Update the current item in the progress tracker

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/registrations/{registrationId}/progress-tracker/update-current-item

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/registrations/{registrationId}/progress-tracker/update-current-item

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/registrations/{registrationId}/progress-tracker/update-current-item

Parameters

Path parameters

NameTypeRequiredDescription
registrationIdstringYesThe ID of the registration

Request body

application/json Required
FieldTypeRequiredDescription
contentTypestringYesNo description provided.
itemDataobjectYesNo description provided.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Progress tracker updated

application/json

FieldTypeRequiredDescription
contentTypestringNoNo description provided.
itemDataobjectNoNo description provided.
messagestringNoThe message of the updatecurrentitemprogressresponse.
progressTrackerobjectNoNo description provided.
registrationIdstring (uuid)NoID of the associated registration.
400
Bad request

application/json

FieldTypeRequiredDescription
detailsstringNoThe details of the errorresponse.
errorstringNoThe error of the errorresponse.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Server error

application/json

FieldTypeRequiredDescription
detailsstringNoThe details of the errorresponse.
errorstringNoThe error of the errorresponse.
Academy GET

/api/academy/{type}/{orgId}/{slug}

Get a single learning path

Returns a learning path identified by type, orgId, and slug.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/academy/{type}/{orgId}/{slug}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/academy/{type}/{orgId}/{slug}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/academy/{type}/{orgId}/{slug}

Parameters

Path parameters

NameTypeRequiredDescription
typestringYesNo description provided.
orgIdstringYesNo description provided.
slugstringYesNo description provided.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
A single academy content

application/json

AcademyCurricula entity schema.
FieldTypeRequiredDescription
badgeIdstring (uuid)NoID of the badge to be awarded on completion of this curricula
createdAtstringYesWhen the Curricula item was created
deletedAtstringYesNo description provided.
idstring (uuid)YesId of the Curricula
inviteIdstringNoID of the invite associated with this Curricula
levelstringYesLevel of the Curricula
metadataobjectYesAdditional metadata about the Curricula
orgIdstringYesOrganization ID that owns this learning path
slugstringYesslug of the Curricula
statusstringYesStatus of the Curricula
typestringYesNo description provided.
updatedAtstringYesWhen the Curricula was last updated
visibilitystringYesVisibility of the Curricula
workspaceIdstringNoID of the workspace to which this Curricula belongs
400
Invalid request parameters
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Server error
Keychain GET

/api/auth/keychains

List keychains

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keychain(s) fetched

application/json

A paginated list of keychains.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
totalCountintegerYesTotal number of items across all pages.
keychainsarray of objectYesKeychains returned on the current page.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Keychain POST

/api/auth/keychains

Create a keychain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains

Request body

application/json Required
Payload for creating or updating a keychain.
FieldTypeRequiredDescription
namestringYesName of the keychain.
ownerstring (uuid)NoOwner of the keychain.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Keychain created

application/json

Represents a collection of keys.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the keychain.
namestringYesName of the keychain.
ownerstring (uuid)YesOwner of the keychain.
createdAtstring (date-time)YesTimestamp when the keychain was created.
updatedAtstring (date-time)YesTimestamp when the keychain was last updated.
deletedAtstring | null (date-time)NoTimestamp when the keychain was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Keychain GET

/api/auth/keychains/{keychainId}

Get keychain by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains/{keychainId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains/{keychainId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains/{keychainId}

Parameters

Path parameters

NameTypeRequiredDescription
keychainIdstring (uuid)YesKeychain ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keychain fetched

application/json

Represents a collection of keys.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the keychain.
namestringYesName of the keychain.
ownerstring (uuid)YesOwner of the keychain.
createdAtstring (date-time)YesTimestamp when the keychain was created.
updatedAtstring (date-time)YesTimestamp when the keychain was last updated.
deletedAtstring | null (date-time)NoTimestamp when the keychain was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Keychain PUT

/api/auth/keychains/{keychainId}

Update keychain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains/{keychainId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains/{keychainId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains/{keychainId}

Parameters

Path parameters

NameTypeRequiredDescription
keychainIdstring (uuid)YesKeychain ID

Request body

application/json Required
Payload for creating or updating a keychain.
FieldTypeRequiredDescription
namestringYesName of the keychain.
ownerstring (uuid)NoOwner of the keychain.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keychain updated

application/json

Represents a collection of keys.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the keychain.
namestringYesName of the keychain.
ownerstring (uuid)YesOwner of the keychain.
createdAtstring (date-time)YesTimestamp when the keychain was created.
updatedAtstring (date-time)YesTimestamp when the keychain was last updated.
deletedAtstring | null (date-time)NoTimestamp when the keychain was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Keychain DELETE

/api/auth/keychains/{keychainId}

Delete keychain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains/{keychainId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains/{keychainId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains/{keychainId}

Parameters

Path parameters

NameTypeRequiredDescription
keychainIdstring (uuid)YesKeychain ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Keychain deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Keychain GET

/api/auth/keychains/{keychainId}/keys

List keys in a keychain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains/{keychainId}/keys

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains/{keychainId}/keys

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains/{keychainId}/keys

Parameters

Path parameters

NameTypeRequiredDescription
keychainIdstring (uuid)YesKeychain ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keys response

application/json

A paginated list of authorization keys.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
totalCountintegerYesTotal number of items across all pages.
keysarray of objectYesKeys returned on the current page.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Keychain POST

/api/auth/keychains/{keychainId}/{keyId}

Add key to keychain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains/{keychainId}/{keyId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains/{keychainId}/{keyId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains/{keychainId}/{keyId}

Parameters

Path parameters

NameTypeRequiredDescription
keychainIdstring (uuid)YesKeychain ID
keyIdstring (uuid)YesKey ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Key added to keychain
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Keychain DELETE

/api/auth/keychains/{keychainId}/{keyId}

Remove key from keychain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keychains/{keychainId}/{keyId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keychains/{keychainId}/{keyId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keychains/{keychainId}/{keyId}

Parameters

Path parameters

NameTypeRequiredDescription
keychainIdstring (uuid)YesKeychain ID
keyIdstring (uuid)YesKey ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Key removed from keychain
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Key GET

/api/auth/keys

List key

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keys

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keys

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keys

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keys fetched

application/json

A paginated list of authorization keys.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
totalCountintegerYesTotal number of items across all pages.
keysarray of objectYesKeys returned on the current page.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Key POST

/api/auth/keys

Create or update a key

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keys

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keys

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keys

Request body

application/json Required
Payload for creating or updating a key.
FieldTypeRequiredDescription
idstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
functionstringNoOperation permitted by the key.
categorystringNoCategory for the key.
subcategorystringNoSubcategory for the key.
descriptionstringNoHuman readable description of the key.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Key upserted

application/json

Represents an authorization key used for access control.
FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
ownerstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
functionstringYesOperation permitted by the key.
categorystringYesCategory for the key.
subcategorystringYesSubcategory for the key.
descriptionstringYesHuman readable description of the key.
createdAtstring (date-time)YesTimestamp when the key was created.
updatedAtstring (date-time)YesTimestamp when the key was last updated.
deletedAtstring | null (date-time)NoTimestamp when the key was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Key GET

/api/auth/keys/{keyId}

Get key by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keys/{keyId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keys/{keyId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keys/{keyId}

Parameters

Path parameters

NameTypeRequiredDescription
keyIdstring (uuid)YesKey ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Key response

application/json

Represents an authorization key used for access control.
FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
ownerstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
functionstringYesOperation permitted by the key.
categorystringYesCategory for the key.
subcategorystringYesSubcategory for the key.
descriptionstringYesHuman readable description of the key.
createdAtstring (date-time)YesTimestamp when the key was created.
updatedAtstring (date-time)YesTimestamp when the key was last updated.
deletedAtstring | null (date-time)NoTimestamp when the key was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Key DELETE

/api/auth/keys/{keyId}

Delete key

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/auth/keys/{keyId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/auth/keys/{keyId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/auth/keys/{keyId}

Parameters

Path parameters

NameTypeRequiredDescription
keyIdstring (uuid)YesKey ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Key deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design GET

/api/catalog/content/classes

Get catalog content classes

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/content/classes

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/content/classes

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/content/classes

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of items per page (canonical camelCase form).

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Catalog content classes

application/json

FieldTypeRequiredDescription
classstringNoThe class of the catalogcontentclass.
descriptionstringNoDescription of the catalogcontentclass.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Design GET

/api/catalog/content/{type}

Get catalog content

Authentication

No authentication required

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/content/{type}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/content/{type}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/content/{type}

Parameters

Path parameters

NameTypeRequiredDescription
typestringYesNo description provided.

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of items per page (canonical camelCase form).
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
typestringNoNo description provided.
technologystringNoNo description provided.
metricsbooleanNoNo description provided.
classstringNoNo description provided.
userIdstringNoNo description provided.
orgIdstringNoNo description provided.
workspaceIdstringNoNo description provided.
teamIdstringNoNo description provided.
populatebooleanNoNo description provided.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Catalog content page

application/json

Paginated catalog content listing (designs, filters, aggregate counts).
FieldTypeRequiredDescription
categoryCountarray of objectNoCategory-by-count aggregates for the catalog page.
filtersarray of objectNoPublished filters included on this page.
modelsCountarray of objectNoModel-by-count aggregates for the catalog page.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
patternsarray of objectNoPublished designs included on this page.
totalCountintegerNoTotal number of items available.
404
Result not found

text/plain

500
Internal server error

text/plain

Design POST

/api/catalog/content/{type}

Publish catalog content

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/content/{type}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/content/{type}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/content/{type}

Parameters

Path parameters

NameTypeRequiredDescription
typestringYesNo description provided.

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Catalog request result

application/json

Server-returned catalog publish request as persisted by meshery-cloud (catalog_requests table). Records a user’s request to publish a design or filter to the catalog, along with the reviewer-visible requester identity and the request’s approval status.
FieldTypeRequiredDescription
contentClassstring | nullNoSupport-level classification of the content, stored in the content_class column (a Postgres enum). Nullable — legacy requests predate the column.
contentIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
contentNamestringYesHuman-readable name of the content at request time.
contentTypestringYesKind of catalog content the request refers to.
createdAtstring (date-time)YesTimestamp of request creation.
emailstring (email)YesRequesting user’s email address at request time.
firstNamestringYesRequesting user’s first name at request time.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
lastNamestringYesRequesting user’s last name at request time.
statusstringYesApproval status of the request.
updatedAtstring (date-time)YesTimestamp of last request modification (approval or denial).
userobject | nullNoRequesting user record, joined inline by the catalog-request list handler when shaping responses. Server-projected from the users table; not a column on the catalog_requests table itself, so the generated Go field is tagged db:"-" to keep it out of ORM column scans.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

409
Conflict
500
Internal server error

text/plain

Design POST

/api/catalog/content/{type}/unpublish

Unpublish catalog content

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/content/{type}/unpublish

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/content/{type}/unpublish

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/content/{type}/unpublish

Parameters

Path parameters

NameTypeRequiredDescription
typestringYesNo description provided.

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Catalog request result

application/json

Server-returned catalog publish request as persisted by meshery-cloud (catalog_requests table). Records a user’s request to publish a design or filter to the catalog, along with the reviewer-visible requester identity and the request’s approval status.
FieldTypeRequiredDescription
contentClassstring | nullNoSupport-level classification of the content, stored in the content_class column (a Postgres enum). Nullable — legacy requests predate the column.
contentIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
contentNamestringYesHuman-readable name of the content at request time.
contentTypestringYesKind of catalog content the request refers to.
createdAtstring (date-time)YesTimestamp of request creation.
emailstring (email)YesRequesting user’s email address at request time.
firstNamestringYesRequesting user’s first name at request time.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
lastNamestringYesRequesting user’s last name at request time.
statusstringYesApproval status of the request.
updatedAtstring (date-time)YesTimestamp of last request modification (approval or denial).
userobject | nullNoRequesting user record, joined inline by the catalog-request list handler when shaping responses. Server-projected from the users table; not a column on the catalog_requests table itself, so the generated Go field is tagged db:"-" to keep it out of ORM column scans.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

409
Conflict
500
Internal server error

text/plain

Design GET

/api/catalog/requests

Get catalog requests

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/requests

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/requests

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/requests

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of items per page (canonical camelCase form).
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoNo description provided.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Catalog requests page

application/json

Paginated catalog-request listing (pending publish approvals).
FieldTypeRequiredDescription
catalogRequestsarray of objectNoCatalog requests included on this page.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Design POST

/api/catalog/requests/approve

Approve a catalog request

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/requests/approve

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/requests/approve

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/requests/approve

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Request approved

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

409
Conflict
500
Internal server error

text/plain

Design POST

/api/catalog/requests/deny

Deny a catalog request

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/catalog/requests/deny

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/catalog/requests/deny

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/catalog/requests/deny

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Request denied

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

409
Conflict
500
Internal server error

text/plain

Design POST

/api/content/design/share

Share a design, view, or filter by email

Shares a design (pattern), view, or filter with a list of email addresses. When share is true, the content’s visibility is flipped to public and an invitation email is sent to each recipient. When share is false, visibility is reverted to private. Only the owner of the content may change its sharing mode.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/design/share

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/design/share

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/design/share

Request body

application/json Required
Body for sharing a design, filter, or view with recipients by email.
Payload for sharing a piece of content (design, filter, or view) with one or more recipients by email. This schema backs both POST /api/content/design/share and POST /api/content/view/share; the server dispatches on contentType to decide which entity to mutate.
FieldTypeRequiredDescription
contentIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
contentTypestringYesThe kind of content being shared. Must match the entity the handler expects — pattern and filter are valid on the design share endpoint; view is valid on the view share endpoint.
emailsarray of string (email)YesEmail addresses of the recipients to share this content with.
sharebooleanYesWhen true, flip visibility to public and send invitation emails to the recipients. When false, revert visibility to private.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Content shared.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller is not the owner of the content.
404
Result not found

text/plain

500
Internal server error

text/plain

Filter GET

/api/content/filters

Get filters

Returns a paginated list of filters accessible to the user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of items per page (canonical camelCase form).
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
orgIdstring (uuid)NoUser’s organization ID
visibilityarray of stringNoFilter by visibility (public, private, published). May be repeated.
ownerstring (uuid)NoUUID of the owning user. Pass when fetching public/published filters for a specific user (public-profile lookups).

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filters response

application/json

Paginated collection of filters.
FieldTypeRequiredDescription
filtersarray of objectNoFilters included on this page of results.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Filter POST

/api/content/filters

Save filter

Creates or updates a Meshery filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters

Request body

application/json Required
Payload for upserting a filter via POST /api/content/filters. Mirrors meshery-cloud’s MesheryFilterRequestBody and meshery’s MesheryFilterRequestBody — the wrapper carries an optional source URL/path plus a save toggle and an embedded filterData payload. Wire form for the embedded payload field is canonical camelCase (filterData); legacy snake_case (filter_data) is accepted by the existing handlers for the deprecation window but new clients MUST emit filterData.
FieldTypeRequiredDescription
configstringNoOptional opaque configuration string passed through to the underlying filter runtime. Persisted only on the local meshery MesheryFilterPayload shape; meshery-cloud currently ignores the field, but it is documented here so the canonical contract is single-sourced.
filterDataobjectNoFilter body to persist.
pathstringNoOptional source path the filter was loaded from.
savebooleanNoWhen true, persist the filter in addition to parsing it. When false, the server returns the parsed payload without committing it to the database.
urlstring (uri)NoOptional source URL the filter was fetched from.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filter saved

application/json

Server-returned Meshery filter resource as persisted by meshery-cloud (meshery_filters table) and consumed by meshery’s models.MesheryFilter. Filters carry an opaque body (filterFile) plus catalog and visibility metadata, and follow the same content-resource shape as designs minus the catalog engagement counters (the meshery_filters table has no view_count / download_count columns).
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated filter ID.
namestringYesHuman-readable filter name; required, used for catalog listings.
ownerstring (uuid)YesOwning user ID.
filterFilestring (byte)NoRaw filter source persisted as a byte array (bytea column filter_file). Wire form is base64 per OpenAPI format: byte.
filterResourcestringNoFilter resource discriminator describing the filter body’s source format (e.g. WASM module identifier or external resource path). Stored in the filter_resource text column.
locationobjectNoOptional structured location metadata (branch, host, path, …).
visibilitystringNoVisibility scope (private, public, published).
catalogDataobjectNoCatalog metadata attached to the filter when published.
createdAtstring (date-time)YesTimestamp of filter creation.
updatedAtstring (date-time)YesTimestamp of last filter modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Filter POST

/api/content/filters/clone/{filterId}

Clone filter

Creates a copy of an existing filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters/clone/{filterId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters/clone/{filterId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters/clone/{filterId}

Parameters

Path parameters

NameTypeRequiredDescription
filterIdstring (uuid)YesFilter ID

Request body

application/json Required
Payload for POST /api/content/filters/clone/{filterId}. The only client-settable field is the optional name applied to the cloned filter; the server derives ownership and visibility from the request context.
FieldTypeRequiredDescription
namestringNoOptional name to apply to the cloned filter. Defaults to a server-generated derivative of the source filter’s name.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filter cloned

application/json

Server-returned Meshery filter resource as persisted by meshery-cloud (meshery_filters table) and consumed by meshery’s models.MesheryFilter. Filters carry an opaque body (filterFile) plus catalog and visibility metadata, and follow the same content-resource shape as designs minus the catalog engagement counters (the meshery_filters table has no view_count / download_count columns).
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated filter ID.
namestringYesHuman-readable filter name; required, used for catalog listings.
ownerstring (uuid)YesOwning user ID.
filterFilestring (byte)NoRaw filter source persisted as a byte array (bytea column filter_file). Wire form is base64 per OpenAPI format: byte.
filterResourcestringNoFilter resource discriminator describing the filter body’s source format (e.g. WASM module identifier or external resource path). Stored in the filter_resource text column.
locationobjectNoOptional structured location metadata (branch, host, path, …).
visibilitystringNoVisibility scope (private, public, published).
catalogDataobjectNoCatalog metadata attached to the filter when published.
createdAtstring (date-time)YesTimestamp of filter creation.
updatedAtstring (date-time)YesTimestamp of last filter modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Filter POST

/api/content/filters/delete

Bulk delete filters

Deletes multiple filters by ID. Modeled as a POST .../delete sub-resource because REST clients and proxies may strip request bodies on DELETE.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters/delete

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters/delete

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters/delete

Request body

application/json Required
Payload for bulk deleting filters by ID.
FieldTypeRequiredDescription
filtersarray of objectYesFilters targeted for deletion.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filters deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Filter GET

/api/content/filters/download/{filterId}

Download filter file

Downloads the raw filter body associated with the supplied filter ID. The server streams the bytes verbatim with Content-Type: application/wasm and a Content-Disposition: attachment header naming the filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters/download/{filterId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters/download/{filterId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters/download/{filterId}

Parameters

Path parameters

NameTypeRequiredDescription
filterIdstring (uuid)YesFilter ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filter file content

application/wasm

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Filter GET

/api/content/filters/{filterId}

Get filter by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters/{filterId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters/{filterId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters/{filterId}

Parameters

Path parameters

NameTypeRequiredDescription
filterIdstring (uuid)YesFilter ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filter response

application/json

Server-returned Meshery filter resource as persisted by meshery-cloud (meshery_filters table) and consumed by meshery’s models.MesheryFilter. Filters carry an opaque body (filterFile) plus catalog and visibility metadata, and follow the same content-resource shape as designs minus the catalog engagement counters (the meshery_filters table has no view_count / download_count columns).
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated filter ID.
namestringYesHuman-readable filter name; required, used for catalog listings.
ownerstring (uuid)YesOwning user ID.
filterFilestring (byte)NoRaw filter source persisted as a byte array (bytea column filter_file). Wire form is base64 per OpenAPI format: byte.
filterResourcestringNoFilter resource discriminator describing the filter body’s source format (e.g. WASM module identifier or external resource path). Stored in the filter_resource text column.
locationobjectNoOptional structured location metadata (branch, host, path, …).
visibilitystringNoVisibility scope (private, public, published).
catalogDataobjectNoCatalog metadata attached to the filter when published.
createdAtstring (date-time)YesTimestamp of filter creation.
updatedAtstring (date-time)YesTimestamp of last filter modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Filter PUT

/api/content/filters/{filterId}

Update filter by ID

Updates the filter at the supplied ID with the provided payload. Provided as a canonical-CRUD complement to the upsert POST /api/content/filters form so consumers that prefer explicit update semantics can address the resource directly.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters/{filterId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters/{filterId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters/{filterId}

Parameters

Path parameters

NameTypeRequiredDescription
filterIdstring (uuid)YesFilter ID

Request body

application/json Required
Payload for creating or updating a filter via POST /api/content/filters or PUT /api/content/filters/{filterId}. Contains only client-settable fields; server-generated createdAt / updatedAt and the owning userId (which the server derives from the authenticated session) are intentionally excluded.
FieldTypeRequiredDescription
catalogDataobjectNoCatalog metadata to attach when publishing.
filterFilestring (byte)NoRaw filter source as base64-encoded bytes (format: byte). Optional on update — the server preserves the existing body when omitted.
filterResourcestringNoFilter resource discriminator describing the body’s source format (e.g. WASM module identifier or external resource path).
idstring (uuid)NoExisting filter ID for updates; omit on create. Wrapped in an allOf so we can attach the json:"id,omitempty" tag for upsert ergonomics without recursing into the underlying UUID definition.
locationobjectNoOptional structured location metadata.
namestringYesHuman-readable filter name.
visibilitystringNoRequested visibility scope. The server may downgrade a requested published value to private for callers that do not own the filter.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Filter updated

application/json

Server-returned Meshery filter resource as persisted by meshery-cloud (meshery_filters table) and consumed by meshery’s models.MesheryFilter. Filters carry an opaque body (filterFile) plus catalog and visibility metadata, and follow the same content-resource shape as designs minus the catalog engagement counters (the meshery_filters table has no view_count / download_count columns).
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated filter ID.
namestringYesHuman-readable filter name; required, used for catalog listings.
ownerstring (uuid)YesOwning user ID.
filterFilestring (byte)NoRaw filter source persisted as a byte array (bytea column filter_file). Wire form is base64 per OpenAPI format: byte.
filterResourcestringNoFilter resource discriminator describing the filter body’s source format (e.g. WASM module identifier or external resource path). Stored in the filter_resource text column.
locationobjectNoOptional structured location metadata (branch, host, path, …).
visibilitystringNoVisibility scope (private, public, published).
catalogDataobjectNoCatalog metadata attached to the filter when published.
createdAtstring (date-time)YesTimestamp of filter creation.
updatedAtstring (date-time)YesTimestamp of last filter modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Filter DELETE

/api/content/filters/{filterId}

Delete filter by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/filters/{filterId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/filters/{filterId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/filters/{filterId}

Parameters

Path parameters

NameTypeRequiredDescription
filterIdstring (uuid)YesFilter ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Filter deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design GET

/api/content/patterns

Get designs

Returns a paginated list of infrastructure designs accessible to the user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of items per page (canonical camelCase form).
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
orgIdstring (uuid)NoUser’s organization ID
visibilitystringNoFilter by visibility (public, private, published)
userIdstring (uuid)NoUUID of User. Pass userId for fetching public and published designs.
metricsbooleanNoWhether to include usage metrics in the response.
workspaceIdstring (uuid)NoFilter designs by workspace ID.
populatebooleanNoPopulate additional nested fields in the response.
sharedbooleanNoInclude designs shared with the caller.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Designs response

application/json

Paginated collection of designs.
FieldTypeRequiredDescription
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
patternsarray of objectNoDesigns included on this page of results.
resultTypestringNoOptional discriminator describing which collection the page represents.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Design POST

/api/content/patterns

Save design

Creates or updates an infrastructure design.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns

Request body

application/json Required
Payload for upserting a design via POST /api/content/patterns.
FieldTypeRequiredDescription
namestringNoHuman-readable design name.
pathstringNoOptional source path the design was loaded from.
patternDataobjectNoDesign body to persist.
savebooleanNoWhen true, persist the design in addition to parsing it.
urlstring (uri)NoOptional source URL the design was fetched from.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Design saved

application/json

Server-returned design (pattern) resource as persisted by meshery-cloud.
FieldTypeRequiredDescription
catalogDataobjectNoCatalog metadata attached to the design when published.
cloneCountintegerNoServer-aggregated count of times this design has been cloned from the catalog. Server-managed and ignored on writes.
createdAtstring (date-time)NoTimestamp of design creation.
deploymentCountintegerNoServer-aggregated count of deployments originated from this design. Server-managed and ignored on writes.
designTypestring | nullNoDiscriminator identifying the source format of the design body, persisted in the meshery_patterns table’s source_type column (nullable; null for legacy rows imported before the column was introduced). For catalog listings the server may also project this field from the attached catalog metadata. Use this field to branch rendering between native Meshery designs and imported Helm charts, Kubernetes manifests, and Docker Compose files.
downloadCountintegerNoServer-aggregated count of downloads of this design from the catalog. Server-managed and ignored on writes.
idstring (uuid)NoServer-generated design ID.
locationobjectNoOptional structured location metadata (branch, host, path, …).
namestringNoHuman-readable design name.
patternFilestringNoRaw design body as it is persisted in the meshery_patterns table’s pattern_file column. The wire form is the YAML/JSON string the server stores verbatim; consumers that need the structured form transcode at the boundary by parsing the string into a PatternFile (see #/components/schemas/PatternFile) and marshalling it back when they write. Keeping the wire shape as a string mirrors the column’s actual representation and avoids forcing every consumer through the structured-vs- string union that the previous *PatternFile typing implied.
shareCountintegerNoServer-aggregated count of share events for this design. Server-managed and ignored on writes.
sourceContentstring | null (byte)NoRaw bytes of the imported source artifact (Helm chart tarball, Kubernetes manifest, Docker Compose file, etc.) preserved in the meshery_patterns table’s source_content column for non-Meshery-Design imports. Empty / null for native Meshery designs. Server-managed: populated by the import and upload handlers and scrubbed to null on most read responses, so clients should treat this as opaque base64-encoded bytes when it does appear on the wire.
updatedAtstring (date-time)NoTimestamp of last design modification.
userobject | nullNoOwning user record, joined inline by the catalog list/get handlers when shaping responses. Server-projected from the users table via the design’s userId; not a column on the meshery_patterns table itself, so the generated Go field is tagged db:"-" to keep it out of ORM column scans.
userIdstring (uuid)NoOwning user ID.
viewCountintegerNoServer-aggregated count of views on this design in the catalog. Present on list/catalog responses; server-managed and ignored on writes.
visibilitystringNoVisibility scope of the design — controls whether non-owners may read or list it. private is owner-only, public is readable by anyone in the org, and published is visible in the catalog.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Design POST

/api/content/patterns/clone/{designId}

Clone design

Creates a copy of an existing design.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/clone/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/clone/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/clone/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
designIdstring (uuid)YesDesign (Pattern) ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Design cloned

application/json

Server-returned design (pattern) resource as persisted by meshery-cloud.
FieldTypeRequiredDescription
catalogDataobjectNoCatalog metadata attached to the design when published.
cloneCountintegerNoServer-aggregated count of times this design has been cloned from the catalog. Server-managed and ignored on writes.
createdAtstring (date-time)NoTimestamp of design creation.
deploymentCountintegerNoServer-aggregated count of deployments originated from this design. Server-managed and ignored on writes.
designTypestring | nullNoDiscriminator identifying the source format of the design body, persisted in the meshery_patterns table’s source_type column (nullable; null for legacy rows imported before the column was introduced). For catalog listings the server may also project this field from the attached catalog metadata. Use this field to branch rendering between native Meshery designs and imported Helm charts, Kubernetes manifests, and Docker Compose files.
downloadCountintegerNoServer-aggregated count of downloads of this design from the catalog. Server-managed and ignored on writes.
idstring (uuid)NoServer-generated design ID.
locationobjectNoOptional structured location metadata (branch, host, path, …).
namestringNoHuman-readable design name.
patternFilestringNoRaw design body as it is persisted in the meshery_patterns table’s pattern_file column. The wire form is the YAML/JSON string the server stores verbatim; consumers that need the structured form transcode at the boundary by parsing the string into a PatternFile (see #/components/schemas/PatternFile) and marshalling it back when they write. Keeping the wire shape as a string mirrors the column’s actual representation and avoids forcing every consumer through the structured-vs- string union that the previous *PatternFile typing implied.
shareCountintegerNoServer-aggregated count of share events for this design. Server-managed and ignored on writes.
sourceContentstring | null (byte)NoRaw bytes of the imported source artifact (Helm chart tarball, Kubernetes manifest, Docker Compose file, etc.) preserved in the meshery_patterns table’s source_content column for non-Meshery-Design imports. Empty / null for native Meshery designs. Server-managed: populated by the import and upload handlers and scrubbed to null on most read responses, so clients should treat this as opaque base64-encoded bytes when it does appear on the wire.
updatedAtstring (date-time)NoTimestamp of last design modification.
userobject | nullNoOwning user record, joined inline by the catalog list/get handlers when shaping responses. Server-projected from the users table via the design’s userId; not a column on the meshery_patterns table itself, so the generated Go field is tagged db:"-" to keep it out of ORM column scans.
userIdstring (uuid)NoOwning user ID.
viewCountintegerNoServer-aggregated count of views on this design in the catalog. Present on list/catalog responses; server-managed and ignored on writes.
visibilitystringNoVisibility scope of the design — controls whether non-owners may read or list it. private is owner-only, public is readable by anyone in the org, and published is visible in the catalog.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design POST

/api/content/patterns/delete

Bulk delete designs

Deletes multiple designs by ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/delete

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/delete

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/delete

Request body

application/json Required
Payload for bulk deleting designs by ID.
FieldTypeRequiredDescription
patternsarray of objectNoDesigns targeted for deletion.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Designs deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Design GET

/api/content/patterns/download/{designId}

Download design file

Downloads the raw design file for the specified design.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/download/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/download/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/download/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
designIdstring (uuid)YesDesign (Pattern) ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Design file content

application/yaml

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

PatternResource GET

/api/content/patterns/resource

Get pattern resources

Returns a paginated list of pattern resources owned by the authenticated user, optionally filtered by resource identity fields and organization or workspace scope.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/resource

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/resource

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/resource

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of items per page (canonical camelCase form).
pagesizeintegerNoNumber of items per page. Deprecated alias of pageSize kept for the meshery server’s remote provider, which still sends the lowercase form; canonical pageSize wins when both are present.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
namestringNoFilter by resource name.
namespacestringNoFilter by Kubernetes namespace.
typestringNoFilter by resource type discriminator.
oamTypestringNoFilter by OAM categorization (e.g. workload, trait, scope).
orgIdstring (uuid)NoScope results to an organization.
workspaceIdstring (uuid)NoScope results to a workspace.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Pattern resources page

application/json

Paginated collection of pattern resources.
FieldTypeRequiredDescription
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
resourcesarray of objectNoPattern resources included on this page of results.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

PatternResource POST

/api/content/patterns/resource

Save pattern resource

Creates a new pattern resource when no id is supplied, or updates the entry matching the provided id. Ownership is derived from the authenticated session; any client-supplied owner is ignored.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/resource

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/resource

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/resource

Request body

application/json Required
Payload for creating or updating a pattern resource via POST /api/content/patterns/resource. Contains only client-settable fields; the owning userId (derived from the authenticated session), the deleted marker, and the server-generated createdAt / updatedAt timestamps are intentionally excluded.
FieldTypeRequiredDescription
idstring (uuid)NoExisting pattern resource ID for updates; omit on create.
namestringYesName of the provisioned resource.
namespacestringYesKubernetes namespace the resource was provisioned into.
oamTypestringYesOAM categorization of the resource (e.g. workload, trait, scope).
typestringYesResource type discriminator (e.g. the Kubernetes kind).

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Pattern resource saved

application/json

Server-returned Meshery pattern resource as persisted by meshery-cloud (meshery_pattern_resources table). A pattern resource records the Kubernetes-addressable identity (name, namespace, type, OAM type) of a resource provisioned from a design, and is used by the design engine to deduplicate provisioned resources. This v1beta3 shape supersedes the legacy v1alpha2 snake_case wire form and corrects its Namepace typo to namespace.
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated pattern resource ID.
userIdstring (uuid)YesOwning user ID. Persisted in the owner column of the meshery_pattern_resources table (confirmed against the production schema dump); the wire identifier stays camelCase userId per the identifier-naming contract.
namestringYesName of the provisioned resource.
namespacestringYesKubernetes namespace the resource was provisioned into. Corrects the legacy v1alpha2 Namepace typo.
typestringYesResource type discriminator (e.g. the Kubernetes kind).
oamTypestringYesOAM (Open Application Model) categorization of the resource, stored in the oam_type column (e.g. workload, trait, scope).
deletedbooleanYesSoft-delete marker. Server-managed; rows are flagged rather than removed so the design engine can reconcile prior provisions.
createdAtstring (date-time)YesTimestamp of pattern resource creation.
updatedAtstring (date-time)YesTimestamp of last pattern resource modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

PatternResource GET

/api/content/patterns/resource/{patternResourceId}

Get pattern resource by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/resource/{patternResourceId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/resource/{patternResourceId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/resource/{patternResourceId}

Parameters

Path parameters

NameTypeRequiredDescription
patternResourceIdstring (uuid)YesPattern resource ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Pattern resource response

application/json

Server-returned Meshery pattern resource as persisted by meshery-cloud (meshery_pattern_resources table). A pattern resource records the Kubernetes-addressable identity (name, namespace, type, OAM type) of a resource provisioned from a design, and is used by the design engine to deduplicate provisioned resources. This v1beta3 shape supersedes the legacy v1alpha2 snake_case wire form and corrects its Namepace typo to namespace.
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated pattern resource ID.
userIdstring (uuid)YesOwning user ID. Persisted in the owner column of the meshery_pattern_resources table (confirmed against the production schema dump); the wire identifier stays camelCase userId per the identifier-naming contract.
namestringYesName of the provisioned resource.
namespacestringYesKubernetes namespace the resource was provisioned into. Corrects the legacy v1alpha2 Namepace typo.
typestringYesResource type discriminator (e.g. the Kubernetes kind).
oamTypestringYesOAM (Open Application Model) categorization of the resource, stored in the oam_type column (e.g. workload, trait, scope).
deletedbooleanYesSoft-delete marker. Server-managed; rows are flagged rather than removed so the design engine can reconcile prior provisions.
createdAtstring (date-time)YesTimestamp of pattern resource creation.
updatedAtstring (date-time)YesTimestamp of last pattern resource modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

PatternResource DELETE

/api/content/patterns/resource/{patternResourceId}

Delete pattern resource

Soft-deletes the pattern resource and returns the deleted entity. The live meshery-cloud handler responds 200 with the deleted resource body (not 204), so the deleted record’s identity remains available to the caller.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/resource/{patternResourceId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/resource/{patternResourceId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/resource/{patternResourceId}

Parameters

Path parameters

NameTypeRequiredDescription
patternResourceIdstring (uuid)YesPattern resource ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Deleted pattern resource

application/json

Server-returned Meshery pattern resource as persisted by meshery-cloud (meshery_pattern_resources table). A pattern resource records the Kubernetes-addressable identity (name, namespace, type, OAM type) of a resource provisioned from a design, and is used by the design engine to deduplicate provisioned resources. This v1beta3 shape supersedes the legacy v1alpha2 snake_case wire form and corrects its Namepace typo to namespace.
FieldTypeRequiredDescription
idstring (uuid)YesServer-generated pattern resource ID.
userIdstring (uuid)YesOwning user ID. Persisted in the owner column of the meshery_pattern_resources table (confirmed against the production schema dump); the wire identifier stays camelCase userId per the identifier-naming contract.
namestringYesName of the provisioned resource.
namespacestringYesKubernetes namespace the resource was provisioned into. Corrects the legacy v1alpha2 Namepace typo.
typestringYesResource type discriminator (e.g. the Kubernetes kind).
oamTypestringYesOAM (Open Application Model) categorization of the resource, stored in the oam_type column (e.g. workload, trait, scope).
deletedbooleanYesSoft-delete marker. Server-managed; rows are flagged rather than removed so the design engine can reconcile prior provisions.
createdAtstring (date-time)YesTimestamp of pattern resource creation.
updatedAtstring (date-time)YesTimestamp of last pattern resource modification.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design POST

/api/content/patterns/upload/{designId}

Upload design source content

Replaces the raw source content blob stored alongside a design. The server (meshery-cloud’s UpsertPatternSourceContent handler) reads the entire request body as opaque bytes via io.ReadAll and persists them without interpretation, so the content-type is whatever the uploader sent — application/octet-stream is the canonical choice. The previous declaration reused MesheryPatternImportRequestBody under multipart/form-data, which the handler never parses; it remained wired up solely to share a schema ref with /api/pattern/import. See meshery/schemas#771 for the drift analysis.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/upload/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/upload/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/upload/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
designIdstring (uuid)YesDesign (Pattern) ID

Request body

application/octet-stream Required
Opaque design source bytes (yaml, tarball, etc.)

Schema: string (binary)

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Design source content uploaded
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design GET

/api/content/patterns/{designId}

Get design by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
designIdstring (uuid)YesDesign (Pattern) ID

Query parameters

NameTypeRequiredDescription
metricsbooleanNoWhether to include usage metrics in the response.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Design response

application/json

Server-returned design (pattern) resource as persisted by meshery-cloud.
FieldTypeRequiredDescription
catalogDataobjectNoCatalog metadata attached to the design when published.
cloneCountintegerNoServer-aggregated count of times this design has been cloned from the catalog. Server-managed and ignored on writes.
createdAtstring (date-time)NoTimestamp of design creation.
deploymentCountintegerNoServer-aggregated count of deployments originated from this design. Server-managed and ignored on writes.
designTypestring | nullNoDiscriminator identifying the source format of the design body, persisted in the meshery_patterns table’s source_type column (nullable; null for legacy rows imported before the column was introduced). For catalog listings the server may also project this field from the attached catalog metadata. Use this field to branch rendering between native Meshery designs and imported Helm charts, Kubernetes manifests, and Docker Compose files.
downloadCountintegerNoServer-aggregated count of downloads of this design from the catalog. Server-managed and ignored on writes.
idstring (uuid)NoServer-generated design ID.
locationobjectNoOptional structured location metadata (branch, host, path, …).
namestringNoHuman-readable design name.
patternFilestringNoRaw design body as it is persisted in the meshery_patterns table’s pattern_file column. The wire form is the YAML/JSON string the server stores verbatim; consumers that need the structured form transcode at the boundary by parsing the string into a PatternFile (see #/components/schemas/PatternFile) and marshalling it back when they write. Keeping the wire shape as a string mirrors the column’s actual representation and avoids forcing every consumer through the structured-vs- string union that the previous *PatternFile typing implied.
shareCountintegerNoServer-aggregated count of share events for this design. Server-managed and ignored on writes.
sourceContentstring | null (byte)NoRaw bytes of the imported source artifact (Helm chart tarball, Kubernetes manifest, Docker Compose file, etc.) preserved in the meshery_patterns table’s source_content column for non-Meshery-Design imports. Empty / null for native Meshery designs. Server-managed: populated by the import and upload handlers and scrubbed to null on most read responses, so clients should treat this as opaque base64-encoded bytes when it does appear on the wire.
updatedAtstring (date-time)NoTimestamp of last design modification.
userobject | nullNoOwning user record, joined inline by the catalog list/get handlers when shaping responses. Server-projected from the users table via the design’s userId; not a column on the meshery_patterns table itself, so the generated Go field is tagged db:"-" to keep it out of ORM column scans.
userIdstring (uuid)NoOwning user ID.
viewCountintegerNoServer-aggregated count of views on this design in the catalog. Present on list/catalog responses; server-managed and ignored on writes.
visibilitystringNoVisibility scope of the design — controls whether non-owners may read or list it. private is owner-only, public is readable by anyone in the org, and published is visible in the catalog.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design DELETE

/api/content/patterns/{designId}

Delete design by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/patterns/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/patterns/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/patterns/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
designIdstring (uuid)YesDesign (Pattern) ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Design deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

View POST

/api/content/view/share

Share a view by email

Shares a view with a list of email addresses. When share is true, the view’s visibility is flipped to public and an invitation email is sent to each recipient. When share is false, visibility is reverted to private. Only the owner of the view (or a provider admin) may change its sharing mode.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/view/share

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/view/share

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/view/share

Request body

application/json Required
Body for sharing a view with recipients by email.
Payload for sharing a view with one or more recipients by email. The wire format matches the canonical design share payload (design.ContentSharePayload in v1beta2/design), restricted to the view content type since that is all this endpoint accepts.
FieldTypeRequiredDescription
contentIdstring (uuid)YesIdentifier of the view being shared.
contentTypestringYesThe kind of content being shared. Only view is accepted on this endpoint.
emailsarray of string (email)YesEmail addresses of the recipients to share this view with.
sharebooleanYesWhen true, flip the view’s visibility to public and send invitation emails to the recipients. When false, revert visibility to private.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
View shared.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller is not the owner of the view.
404
Result not found

text/plain

500
Internal server error

text/plain

View GET

/api/content/views

Get views

Returns a paginated list of views accessible to the user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/views

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/views

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/views

Parameters

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string for assignment and soft-delete filters.
sharedbooleanNoWhen true, include views shared with the user.
visibilitystringNoFilter by visibility level (public, private).
orgIdstringNoOrganization ID to scope the request.
userIdstringNoUUID of the user whose views to retrieve.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Views page

application/json

Paginated list of views with location enrichment.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
viewsarray of objectNoViews in this page, enriched with workspace and organization context.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

View POST

/api/content/views

Create a view

Creates a new view with the given filters and metadata.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/views

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/views

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/views

Request body

application/json Required
Body for creating or updating a view
Payload for creating or updating a view.
FieldTypeRequiredDescription
filtersobjectNoFilter configuration for this view.
metadataobjectNoMetadata associated with the view.
namestringYesDisplay name of the view.
visibilitystringNoVisibility level of the view.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Created view

application/json

A saved view with filters and metadata that defines a customized perspective of Meshery resources. Learn more at https://docs.meshery.io/concepts/logical/views
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the view.
namestringYesDisplay name of the view.
visibilitystringYesVisibility level of the view.
filtersobjectNoFilter configuration that defines which resources this view displays.
metadataobjectNoAdditional metadata associated with the view.
userIdstring (uuid)YesID of the user who created the view.
createdAtstring (date-time)YesTimestamp when the view was created.
updatedAtstring (date-time)YesTimestamp when the view was last updated.
deletedAtstring | null (date-time)NoTimestamp when the view was soft deleted. Null while the view remains active.

Example response

{
  "createdAt": "0001-01-01T00:00:00Z",
  "deletedAt": null,
  "filters": {},
  "id": "00000000-0000-0000-0000-000000000000",
  "metadata": {},
  "name": "My Kubernetes View",
  "updatedAt": "0001-01-01T00:00:00Z",
  "userId": "00000000-0000-0000-0000-000000000000",
  "visibility": "private"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

View GET

/api/content/views/{viewId}

Get a view by ID

Returns a single view by its unique identifier.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/views/{viewId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/views/{viewId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/views/{viewId}

Parameters

Path parameters

NameTypeRequiredDescription
viewIdstring (uuid)YesView ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
View

application/json

A saved view with filters and metadata that defines a customized perspective of Meshery resources. Learn more at https://docs.meshery.io/concepts/logical/views
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the view.
namestringYesDisplay name of the view.
visibilitystringYesVisibility level of the view.
filtersobjectNoFilter configuration that defines which resources this view displays.
metadataobjectNoAdditional metadata associated with the view.
userIdstring (uuid)YesID of the user who created the view.
createdAtstring (date-time)YesTimestamp when the view was created.
updatedAtstring (date-time)YesTimestamp when the view was last updated.
deletedAtstring | null (date-time)NoTimestamp when the view was soft deleted. Null while the view remains active.

Example response

{
  "createdAt": "0001-01-01T00:00:00Z",
  "deletedAt": null,
  "filters": {},
  "id": "00000000-0000-0000-0000-000000000000",
  "metadata": {},
  "name": "My Kubernetes View",
  "updatedAt": "0001-01-01T00:00:00Z",
  "userId": "00000000-0000-0000-0000-000000000000",
  "visibility": "private"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

View PUT

/api/content/views/{viewId}

Update a view

Updates an existing view with new filters, metadata, or visibility.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/views/{viewId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/views/{viewId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/views/{viewId}

Parameters

Path parameters

NameTypeRequiredDescription
viewIdstring (uuid)YesView ID

Request body

application/json Required
Body for creating or updating a view
Payload for creating or updating a view.
FieldTypeRequiredDescription
filtersobjectNoFilter configuration for this view.
metadataobjectNoMetadata associated with the view.
namestringYesDisplay name of the view.
visibilitystringNoVisibility level of the view.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Updated view

application/json

A saved view with filters and metadata that defines a customized perspective of Meshery resources. Learn more at https://docs.meshery.io/concepts/logical/views
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the view.
namestringYesDisplay name of the view.
visibilitystringYesVisibility level of the view.
filtersobjectNoFilter configuration that defines which resources this view displays.
metadataobjectNoAdditional metadata associated with the view.
userIdstring (uuid)YesID of the user who created the view.
createdAtstring (date-time)YesTimestamp when the view was created.
updatedAtstring (date-time)YesTimestamp when the view was last updated.
deletedAtstring | null (date-time)NoTimestamp when the view was soft deleted. Null while the view remains active.

Example response

{
  "createdAt": "0001-01-01T00:00:00Z",
  "deletedAt": null,
  "filters": {},
  "id": "00000000-0000-0000-0000-000000000000",
  "metadata": {},
  "name": "My Kubernetes View",
  "updatedAt": "0001-01-01T00:00:00Z",
  "userId": "00000000-0000-0000-0000-000000000000",
  "visibility": "private"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

View DELETE

/api/content/views/{viewId}

Delete a view

Soft-deletes a view by its unique identifier.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/content/views/{viewId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/content/views/{viewId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/content/views/{viewId}

Parameters

Path parameters

NameTypeRequiredDescription
viewIdstring (uuid)YesView ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
View deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Feature GET

/api/entitlement/features

Get all features defined across plans

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/features

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/features

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/features

Parameters

Query parameters

NameTypeRequiredDescription
pagestringNoGet responses by page
pagesizestringNoGet responses by pagesize

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Features response

application/json

List of features.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the feature.
plan_idstring (uuid)YesIdentifier of the plan granting this feature.
planobjectNoThe plan granting this feature. Populated only when the association is explicitly loaded.
namestringYesName of the entitled feature.
quantitynumber (double)YesQuantity of the feature granted by the plan. The sentinel value 999999999999 denotes unlimited.
created_atstring (date-time)YesTimestamp when the resource was created.
updated_atstring (date-time)YesTimestamp when the resource was updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Plan GET

/api/entitlement/plans

Get all plans supported by the system

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/plans

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/plans

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/plans

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Plans response

application/json

FieldTypeRequiredDescription
cadencestringYesBilling cadence for the plan (monthly, annually, or none).
currencystringYesCurrency in which the plan is priced.
idstring (uuid)YesUnique identifier for the plan.
minimumUnitsintegerYesMinimum number of units required for the plan.
namestringYesDisplay name of the plan.
pricePerUnitnumberYesPrice per unit of the plan.
unitstringYesUnit of consumption this plan charges against (e.g. user).
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Subscription Subscriptions GET

/api/entitlement/subscriptions

Read subscriptions

Returns all subscriptions for the organization

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize
orderstringNoGet ordered responses
statusarray of stringNoFilter subscriptions by status
planIdarray of string (uuid)NoFilter subscriptions by plan UUID. Repeat for multiple values.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Subscriptions response

application/json

Paginated list of subscriptions.
FieldTypeRequiredDescription
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
subscriptionsarray of objectYesSubscriptions returned on the current page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

Subscription Subscriptions POST

/api/entitlement/subscriptions

Update an existing subscription

Updates the subscription named by id in the request body. Despite the historical “upsert” name, this route does not create: a body carrying no id is refused with 400. Subscriptions are minted from the payment processor’s own response, either by the checkout flow (POST /api/entitlement/subscriptions/create) or by the payment-processor webhook, and neither of those reaches this route.

Two independent authorization gates guard this route and they answer differently. The route’s own middleware runs first. It authorizes against the organization named by the route’s orgId path parameter when the route has one, and otherwise against whichever organization the caller currently has selected - and this route has no orgId parameter, so here it is the selected one. A caller who is not a provider admin, an Organization Admin or an Organization Owner of that organization is refused with 403 before the body is read at all. The handler then re-checks against the stored subscription’s own organization, which need not be the selected one: the caller must be a provider admin, or an Organization Admin or Organization Owner of that organization, and a caller who is not receives 404 - the same answer an absent subscription gives, and deliberately indistinguishable from it, so that the route cannot be used to discover which subscription IDs exist.

The fields the payment processor and the webhook own are pinned to the stored row before the write, and any client-supplied value for them is ignored rather than honoured: orgId, billingId, status, startDate and endDate. The writable surface is planId and quantity, and the write replaces both - a body that omits one stores that field’s zero value rather than preserving the stored one, so send both on every call.

The 200 body is a SubscriptionPage carrying the single updated subscription (page 0, pageSize 1, totalCount 1), not a bare subscription object.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions

Request body

application/json Required

Body of an update to an existing subscription (POST /api/entitlement/subscriptions).

This is an update payload, never a create payload: id names the subscription to update and the server refuses a body without one. It is also a full replacement of the writable surface rather than a partial merge, which is why planId and quantity are both required - omitting either stores its zero value.

The fields the payment processor and the webhook own - orgId, billingId, status, startDate and endDate - are deliberately absent: the server pins each of them to the stored row and ignores any value supplied for them.

FieldTypeRequiredDescription
idstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
planIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
quantityintegerYesNumber of units subscribed (eg number of users).

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Subscription updated

application/json

Paginated list of subscriptions.
FieldTypeRequiredDescription
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
subscriptionsarray of objectYesSubscriptions returned on the current page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Subscription Subscriptions POST

/api/entitlement/subscriptions/create

Create a new subscription for an organization

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/create

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/create

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/create

Request body

application/json Required
Payload for creating a new subscription through a payment processor.
FieldTypeRequiredDescription
couponIdstringNoCoupon ID to apply.
emailstring (email)NoEmail of the customer.
orgIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
paymentProcessorstringNoPayment processor used to complete the subscription checkout.
planIdstringNoPrice ID from the payment processor.
userCountintegerNoNumber of users in the organization.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
A new subscription has been created

application/json

Response body returned after a subscription is created.
FieldTypeRequiredDescription
clientSecretstringNoClient secret returned by the payment processor for the subscription checkout flow.
subscriptionIdstringNoID of the associated subscription in the payment processor.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

Feature GET

/api/entitlement/subscriptions/organizations/{orgId}/features

Get the active features entitled to an organization through its subscriptions

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/organizations/{orgId}/features

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/organizations/{orgId}/features

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/organizations/{orgId}/features

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesThe ID of the organization

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Features response

application/json

List of features.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the feature.
plan_idstring (uuid)YesIdentifier of the plan granting this feature.
planobjectNoThe plan granting this feature. Populated only when the association is explicitly loaded.
namestringYesName of the entitled feature.
quantitynumber (double)YesQuantity of the feature granted by the plan. The sentinel value 999999999999 denotes unlimited.
created_atstring (date-time)YesTimestamp when the resource was created.
updated_atstring (date-time)YesTimestamp when the resource was updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Subscription Payment Processors POST

/api/entitlement/subscriptions/webhooks

Handle webhook events from payment processors

Authentication

No authentication required

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/webhooks

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/webhooks

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/webhooks

Request body

application/json Required
Payload for webhook events from payment processors.

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Webhook processed
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Subscription Subscriptions GET

/api/entitlement/subscriptions/{subscriptionId}

Read a single subscription

Returns the subscription named by subscriptionId.

Authorization is evaluated against the subscription’s own organization, the same bar the org-scoped list route (GET /api/entitlement/subscriptions) enforces over the same data: the caller must be a provider admin, or an Organization Admin or Organization Owner of that organization. A caller who is not receives 404, deliberately indistinguishable from an absent subscription, so that the route cannot be used to enumerate subscription IDs.

Unlike the update route, this one is registered without any organization-scoped middleware, so it never answers 403: every authorization denial, whether “not yours” or “not there”, is that same 404. A malformed request still answers 400 and an unauthenticated one 401, as below.

A subscriptionId that is not a UUID is refused with 400, and an unauthenticated caller with 401.

The 200 body is a SubscriptionPage carrying the single subscription (page 0, pageSize 1, totalCount 1), not a bare subscription object.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/{subscriptionId}

Parameters

Path parameters

NameTypeRequiredDescription
subscriptionIdstring (uuid)YesSubscription ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Subscription response

application/json

Paginated list of subscriptions.
FieldTypeRequiredDescription
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
subscriptionsarray of objectYesSubscriptions returned on the current page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Subscription Subscriptions POST

/api/entitlement/subscriptions/{subscriptionId}/cancel

Cancel an existing subscription. The subscription will remain active until the end of the billing period and then it will be canceled.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}/cancel

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}/cancel

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/{subscriptionId}/cancel

Parameters

Path parameters

NameTypeRequiredDescription
subscriptionIdstring (uuid)YesSubscription ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Subscription cancellation scheduled

application/json

Paginated list of subscriptions.
FieldTypeRequiredDescription
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
subscriptionsarray of objectYesSubscriptions returned on the current page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Subscription Subscriptions POST

/api/entitlement/subscriptions/{subscriptionId}/upgrade

Upgrade or downgrade an existing subscription by changing one of the plans in the subscription

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}/upgrade

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}/upgrade

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/{subscriptionId}/upgrade

Parameters

Path parameters

NameTypeRequiredDescription
subscriptionIdstring (uuid)YesSubscription ID

Request body

application/json Required
Payload for upgrading or downgrading a subscription by changing one of its plans.
FieldTypeRequiredDescription
newPlanIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
oldPlanIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Subscription upgraded

application/json

Subscription entity schema.
FieldTypeRequiredDescription
billingIdstringYesBilling ID of the subscription. The ID of the subscription in the external billing system (for example, Stripe).
createdAtstring (date-time)NoTimestamp when the subscription was created.
deletedAtstring (date-time)NoTimestamp when the subscription was soft-deleted, if applicable.
endDatestring (date-time)NoTimestamp when the current subscription period ends.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
planobjectNoEager-loaded plan associated with this subscription.
planIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
quantityintegerYesNumber of units subscribed (eg number of users).
startDatestring (date-time)NoTimestamp when the subscription period started.
statusstringYesCurrent status of the subscription (e.g. active, past_due, canceled).
updatedAtstring (date-time)NoTimestamp when the subscription was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Subscription Subscriptions POST

/api/entitlement/subscriptions/{subscriptionId}/upgrade-preview

Preview the invoice for upgrading or downgrading an existing subscription by changing one of the plans in the subscription

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}/upgrade-preview

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/entitlement/subscriptions/{subscriptionId}/upgrade-preview

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/entitlement/subscriptions/{subscriptionId}/upgrade-preview

Parameters

Path parameters

NameTypeRequiredDescription
subscriptionIdstring (uuid)YesSubscription ID

Request body

application/json Required
Payload for upgrading or downgrading a subscription by changing one of its plans.
FieldTypeRequiredDescription
newPlanIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
oldPlanIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Preview of the upgraded subscription invoice

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Environment GET

/api/environments

Get all environments

Gets all environments

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments

Parameters

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
orgIdstring (uuid)YesUser’s organization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Environments

application/json

Paginated list of environments.
FieldTypeRequiredDescription
environmentsarray of objectNoEnvironments associated with this resource.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Environment POST

/api/environments

Create an environment

Creates a new environment

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments

Request body

application/json Required
Body for creating environment
Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: id, owner, createdAt, updatedAt and deletedAt because the server assigns them, and purpose because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so purpose still reaches the registerRegistryComponent and registerRegistryRelationship request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add purpose here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.
FieldTypeRequiredDescription
descriptionstringNoAn environment is a collection of resources, such as connections & credentials. Provide a detailed description to clarify the purpose of this environment and the types of resources it encompasses. You can modify the description at any time. Learn more about environments here.
namestringYesAn environment is a collection of resources. Provide a name that meaningfully represents these resources. You can change the name of the environment even after its creation.
organizationIdstring (uuid)YesSelect an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Created environment

application/json

Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments
FieldTypeRequiredDescription
idstring (uuid)YesID
schemaVersionstringYesSpecifies the version of the schema to which the environment conforms.
namestringYesEnvironment name
descriptionstringYesEnvironment description
organizationIdstring (uuid)YesEnvironment organization ID
ownerstring (uuid)NoEnvironment owner
createdAtstring (date-time)NoTimestamp when the environment was created.
metadataobjectNoAdditional metadata associated with the environment.
updatedAtstring (date-time)NoTimestamp when the environment was last updated.
deletedAtstring | null (date-time)NoTimestamp when the environment was soft deleted. Null while the environment remains active.
purposestringNo

What the environment exists for. user is an ordinary environment that people create to logically group Connections and their Credentials. administrative designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.

Absent means user. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for “not user”, so the property fails closed.

At most one live environment per organization may carry any single privileged purpose - administrative, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a “not user” test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.

Server-owned and not client-settable. It is absent from EnvironmentPayload, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so registerRegistryComponent and registerRegistryRelationship do carry purpose in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.

The database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer’s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.

Example response

{
  "createdAt": "0001-01-01T00:00:00Z",
  "deletedAt": null,
  "description": "Connections and credentials for the production cluster.",
  "id": "00000000-0000-0000-0000-000000000000",
  "metadata": {},
  "name": "Production Environment",
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "owner": "00000000-0000-0000-0000-000000000000",
  "purpose": "user",
  "schemaVersion": "environments.meshery.io/v1beta3",
  "updatedAt": "0001-01-01T00:00:00Z"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Environment GET

/api/environments/{environmentId}

Get environment by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments/{environmentId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments/{environmentId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments/{environmentId}

Parameters

Path parameters

NameTypeRequiredDescription
environmentIdstring (uuid)YesEnvironment ID

Query parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesUser’s organization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Environment page

application/json

Paginated list of environments.
FieldTypeRequiredDescription
environmentsarray of objectNoEnvironments associated with this resource.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Environment PUT

/api/environments/{environmentId}

Update an environment

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments/{environmentId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments/{environmentId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments/{environmentId}

Parameters

Path parameters

NameTypeRequiredDescription
environmentIdstring (uuid)YesEnvironment ID

Request body

application/json Required
Body for creating environment
Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: id, owner, createdAt, updatedAt and deletedAt because the server assigns them, and purpose because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so purpose still reaches the registerRegistryComponent and registerRegistryRelationship request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add purpose here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.
FieldTypeRequiredDescription
descriptionstringNoAn environment is a collection of resources, such as connections & credentials. Provide a detailed description to clarify the purpose of this environment and the types of resources it encompasses. You can modify the description at any time. Learn more about environments here.
namestringYesAn environment is a collection of resources. Provide a name that meaningfully represents these resources. You can change the name of the environment even after its creation.
organizationIdstring (uuid)YesSelect an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Environment page

application/json

Paginated list of environments.
FieldTypeRequiredDescription
environmentsarray of objectNoEnvironments associated with this resource.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Environment DELETE

/api/environments/{environmentId}

Delete an environment

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments/{environmentId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments/{environmentId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments/{environmentId}

Parameters

Path parameters

NameTypeRequiredDescription
environmentIdstring (uuid)YesEnvironment ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Environment deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Environment GET

/api/environments/{environmentId}/connections

Get environment connections

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments/{environmentId}/connections

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments/{environmentId}/connections

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments/{environmentId}/connections

Parameters

Path parameters

NameTypeRequiredDescription
environmentIdstring (uuid)YesEnvironment ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string used to scope the connection listing.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Environment connections

application/json

Paginated list of connections associated with an environment.
FieldTypeRequiredDescription
connectionsarray of objectNoThe connections of the environmentconnectionspage.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API Connections POST

/api/environments/{environmentId}/connections/{connectionId}

Add connection to environment

Associate a connection with an environment

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments/{environmentId}/connections/{connectionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments/{environmentId}/connections/{connectionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments/{environmentId}/connections/{connectionId}

Parameters

Path parameters

NameTypeRequiredDescription
environmentIdstring (uuid)YesEnvironment ID
connectionIdstring (uuid)YesConnection ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Connection added to environment
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API Connections DELETE

/api/environments/{environmentId}/connections/{connectionId}

Remove connection from environment

Disassociate a connection from an environment

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/environments/{environmentId}/connections/{connectionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/environments/{environmentId}/connections/{connectionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/environments/{environmentId}/connections/{connectionId}

Parameters

Path parameters

NameTypeRequiredDescription
environmentIdstring (uuid)YesEnvironment ID
connectionIdstring (uuid)YesConnection ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Connection removed from environment
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Events GET

/api/events

Get events aggregate summary

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events

Parameters

Query parameters

NameTypeRequiredDescription
cumulativebooleanNoWhen true, return cumulative aggregate counts across all time.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Events aggregate

application/json

Aggregated event counts across categories.
FieldTypeRequiredDescription
auditintegerNoCount of audit-category events.
401
Unauthorized
404
Not found
500
Server error
Events POST

/api/events

Create a new event

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events

Request body

application/json Required
Payload for creating a new event.
FieldTypeRequiredDescription
actionstringNoThe action of the event.
categorystringNoThe category of the event.
descriptionstringNoDescription of the event.
ownerstring (uuid)NoUUID of the user associated with the event.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Event created
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Events POST

/api/events/delete

Bulk delete events

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/delete

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/delete

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/delete

Request body

application/json Required
Payload for bulk-deleting events by ID.
FieldTypeRequiredDescription
idsarray of string (uuid)YesUUIDs of the events to delete.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Events deleted

application/json

Response body returned after bulk event deletion.
FieldTypeRequiredDescription
deletedarray of string (uuid)NoUUIDs of events that were deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Events GET

/api/events/list

Get events list

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/list

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/list

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/list

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Events page

application/json

Paginated list of events.
FieldTypeRequiredDescription
dataarray of objectNoThe events returned on the current page.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
401
Unauthorized
404
Not found
500
Server error
Events PUT

/api/events/status

Bulk update event status

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/status

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/status

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/status

Request body

application/json Required
Payload for bulk-updating the status of events.
FieldTypeRequiredDescription
idsarray of string (uuid)YesUUIDs of the events to update.
statusstringYesNew status to apply to the selected events.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Events updated

application/json

Response body returned after bulk event status update.
FieldTypeRequiredDescription
updatedarray of string (uuid)NoUUIDs of events whose status was updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Events GET

/api/events/summary

Get event summary by user

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/summary

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/summary

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/summary

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Event summary page

application/json

Paginated list of per-user event summaries.
FieldTypeRequiredDescription
dataarray of objectNoThe event summaries returned on the current page.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
401
Unauthorized
404
Not found
500
Server error
Events GET

/api/events/types

Get event types

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/types

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/types

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/types

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Event types

application/json

FieldTypeRequiredDescription
actionstringNoThe action of the event type.
categorystringNoThe category of the event type.
401
Unauthorized
404
Not found
500
Server error
Events DELETE

/api/events/{eventId}

Delete a single event

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/{eventId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/{eventId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/{eventId}

Parameters

Path parameters

NameTypeRequiredDescription
eventIdstring (uuid)YesID of the event.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Event deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Events PUT

/api/events/{eventId}/status

Update status of a single event

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/events/{eventId}/status

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/events/{eventId}/status

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/events/{eventId}/status

Parameters

Path parameters

NameTypeRequiredDescription
eventIdstring (uuid)YesID of the event.

Request body

application/json Required
Payload for updating the status of a single event.
FieldTypeRequiredDescription
statusstringYesCurrent status of the event.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Event status updated

application/json

Response body returned after updating an event’s status.
FieldTypeRequiredDescription
eventIdstring (uuid)NoUUID of the event whose status was updated.
messagestringNoHuman-readable status message.
statusstringNoUpdated status of the event.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Badge GET

/api/identity/badges

Get available badges

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/badges

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/badges

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/badges

Parameters

Query parameters

NameTypeRequiredDescription
orgIdstring (uuid)NoOrganization ID to scope the badge listing to.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Available badges

application/json

Map of badges available in an organization, keyed by badge label.
FieldTypeRequiredDescription
badgesobjectNoAvailable badges, keyed by badge label.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Organization Organizations GET

/api/identity/orgs

Read organizations

Returns organizations for the current user.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoZero-based index of the result page to return.
pageSizeintegerNoMaximum number of items returned on each page.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
allbooleanNoGet all possible entries

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Organizations response

application/json

Paginated list of organizations.
FieldTypeRequiredDescription
organizationsarray of objectNoOrganizations in this page.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
204
No content
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Organization Organizations POST

/api/identity/orgs

Create an organization

Creates a new organization.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs

Request body

application/json Required
Body for creating or updating an organization
Payload for creating or updating an organization. Contains only client-settable fields.
FieldTypeRequiredDescription
countrystringNoCountry of the organization.
descriptionstringNoDescription of the organization.
namestringNoName of the organization.
notifyOrgUpdatebooleanNoIndicates whether organization members should be notified of this update.
preferencesobjectNoOrganization-level user experience preferences.
regionstringNoRegion of the organization.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Single-organization page response

application/json

Single-organization wrapper used by current meshery-cloud organization handlers.
FieldTypeRequiredDescription
organizationsarray of objectNoOrganizations returned in this single-item page wrapper.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

Organization Organizations GET

/api/identity/orgs/by-domain

Get organization by domain

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/by-domain

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/by-domain

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/by-domain

Parameters

Query parameters

NameTypeRequiredDescription
domainstringYesDomain name of the organization to look up.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Organization response

application/json

An organization in Meshery Cloud. Organizations are the top-level tenancy boundary and own teams, workspaces, environments, designs, and other resources. Learn more at https://docs.meshery.io/concepts/logical/organizations
FieldTypeRequiredDescription
countrystringYesCountry of the organization.
createdAtstring (date-time)YesTimestamp when the organization was created.
deletedAtstring (date-time)NoTimestamp when the organization was soft-deleted. Null while the organization is active.
descriptionstringYesDescription of the organization.
domainstring | nullNoDomain of the organization.
idstring (uuid)YesOrganization ID.
metadataobjectYesFree-form metadata associated with the organization, including preferences.
namestringYesName of the organization.
ownerstring (uuid)YesOwner user ID of the organization.
regionstringYesRegion of the organization.
updatedAtstring (date-time)YesTimestamp when the organization was last updated.
401
Expired JWT token used or insufficient privilege

text/plain

404
Organization not found
500
Internal server error
Organization Organizations GET

/api/identity/orgs/{orgId}

Read an organization

Returns the organization in the single-item page wrapper currently emitted by meshery-cloud.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Single-organization page response

application/json

Single-organization wrapper used by current meshery-cloud organization handlers.
FieldTypeRequiredDescription
organizationsarray of objectNoOrganizations returned in this single-item page wrapper.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization Organizations PUT

/api/identity/orgs/{orgId}

Update an organization

Updates the organization.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.

Request body

application/json Required
Body for creating or updating an organization
Payload for creating or updating an organization. Contains only client-settable fields.
FieldTypeRequiredDescription
countrystringNoCountry of the organization.
descriptionstringNoDescription of the organization.
namestringNoName of the organization.
notifyOrgUpdatebooleanNoIndicates whether organization members should be notified of this update.
preferencesobjectNoOrganization-level user experience preferences.
regionstringNoRegion of the organization.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Single-organization page response for the updated organization

application/json

Single-organization wrapper used by current meshery-cloud organization handlers.
FieldTypeRequiredDescription
organizationsarray of objectNoOrganizations returned in this single-item page wrapper.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization Organizations DELETE

/api/identity/orgs/{orgId}

Delete an organization

Deletes the organization.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Organization deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization Organizations GET

/api/identity/orgs/{orgId}/preferences

Get organization preferences

Returns preferences for the specified organization.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/preferences

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/preferences

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/preferences

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Organization metadata, including preferences

application/json

Free-form metadata associated with an organization, including preferences.
FieldTypeRequiredDescription
preferencesobjectYesOrganization-level user experience preferences.
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Role GET

/api/identity/orgs/{orgId}/roles

Get organization roles

Returns all roles defined for the specified organization — the seeded system roles plus any custom roles the organization has created. This is the canonical, drift-free source for surfacing roles to tooling (role pickers, dropdown defaults, docs): role names are free-form, user-defined strings (User.roleNames and Role.roleName are open arrays, not an enumeration), so clients should list them here rather than hard-code a fixed set.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/roles

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/roles

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/roles

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoGet responses by page size
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
allbooleanNoGet all possible entries
selectorstringNoRole grouping selector such as provider, organization, or team.
teamIdstring (uuid)NoTeam ID used when selector is team.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Roles response

application/json

A paginated list of roles.
FieldTypeRequiredDescription
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of roles per page.
totalCountintegerYesTotal number of roles across all pages.
rolesarray of objectYesThe roles of the rolespage.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Role POST

/api/identity/orgs/{orgId}/roles

Upsert organization role

Creates or updates a role for the specified organization.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/roles

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/roles

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/roles

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
Payload for upserting a role. Includes only client-settable fields.
FieldTypeRequiredDescription
descriptionstringYesHuman-readable description of the role.
idstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
roleNamestringYesUnique name of the role.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Role upserted

application/json

Role definition
FieldTypeRequiredDescription
idstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
roleNamestringYesUnique name of the role.
descriptionstringYesHuman-readable description of the role.
createdAtstring (date-time)NoTimestamp when the role was created.
updatedAtstring (date-time)NoTimestamp when the role was last updated.
deletedAtstring (date-time)NoTimestamp when the role was soft-deleted, if applicable.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Role PUT

/api/identity/orgs/{orgId}/roles

Bulk edit role holders

Updates role assignments for multiple users in the organization.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/roles

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/roles

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/roles

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
FieldTypeRequiredDescription
idstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
userIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
usernamestringNoThe username of the user.
emailstring (email)NoEmail address of the user.
firstNamestringNoFirst name of the user.
lastNamestringNoLast name of the user.
statusstringNoCurrent status of the user.
roleNamesarray of stringNoRole names currently or newly assigned to the user.
createdAtstring (date-time)NoTimestamp when the user was created.
updatedAtstring (date-time)NoTimestamp when the user was last updated.
deletedAtstring (date-time)NoTimestamp when the user was soft-deleted, if applicable.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Role holders updated
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Role GET

/api/identity/orgs/{orgId}/roles/{roleId}/keychains

Get keychains for role

Returns all keychains assigned to the specified role.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/roles/{roleId}/keychains

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/roles/{roleId}/keychains

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/roles/{roleId}/keychains

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
roleIdstring (uuid)YesRole ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoGet responses by page size
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keychains response

application/json

FieldTypeRequiredDescription
pageintegerYesNo description provided.
page_sizeintegerYesNo description provided.
total_countintegerYesNo description provided.
keychainsarray of objectYesThe keychains of the keychainpage.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Role POST

/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Assign keychain to role

Associates a keychain with the specified role.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
roleIdstring (uuid)YesRole ID
keychainIdstring (uuid)YesKeychain ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Keychain assigned to role
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Role DELETE

/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Unassign keychain from role

Removes the association between a keychain and a role.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/roles/{roleId}/keychains/{keychainId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
roleIdstring (uuid)YesRole ID
keychainIdstring (uuid)YesKeychain ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Keychain unassigned from role
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team GET

/api/identity/orgs/{orgId}/teams

Get all teams for an organization

Gets all teams within an organization

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Teams

application/json

Paginated list of teams
FieldTypeRequiredDescription
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
teamsarray of objectNoThe teams of the teampage.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team POST

/api/identity/orgs/{orgId}/teams

Create a team

Creates a new team within an organization

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
Body for creating a team
Payload for creating a new team
FieldTypeRequiredDescription
descriptionstringNoA detailed description of the team’s purpose and responsibilities.
metadataobjectNoAdditional client-supplied metadata for the team.
namestringYesTeam name. Provide a meaningful name that represents this team.
notifyTeamUpdatebooleanNoWhether to notify team members when the team is created or updated.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Created team

application/json

A Team is a group of one or more users. Teams are often used as a grouping mechanism for assigning permissions, whether in the context of an organization, a workspace, or some other domain within Meshery. Learn more at https://docs.meshery.io/concepts/logical/teams
FieldTypeRequiredDescription
idstring (uuid)YesTeam ID
namestringYesTeam name
descriptionstringNoTeam description
ownerstring (uuid)NoUser ID of the owner of the team
metadataobjectNoAdditional metadata for the team
createdAtstring (date-time)YesTimestamp when the team was created.
updatedAtstring (date-time)YesTimestamp when the team was last updated.
deletedAtstring (date-time)NoTimestamp when the team was soft-deleted, if applicable.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team GET

/api/identity/orgs/{orgId}/teams/{teamId}

Get a team by ID

Gets a team by its ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
teamIdstring (uuid)YesTeam ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Team

application/json

A Team is a group of one or more users. Teams are often used as a grouping mechanism for assigning permissions, whether in the context of an organization, a workspace, or some other domain within Meshery. Learn more at https://docs.meshery.io/concepts/logical/teams
FieldTypeRequiredDescription
idstring (uuid)YesTeam ID
namestringYesTeam name
descriptionstringNoTeam description
ownerstring (uuid)NoUser ID of the owner of the team
metadataobjectNoAdditional metadata for the team
createdAtstring (date-time)YesTimestamp when the team was created.
updatedAtstring (date-time)YesTimestamp when the team was last updated.
deletedAtstring (date-time)NoTimestamp when the team was soft-deleted, if applicable.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization Organizations POST

/api/identity/orgs/{orgId}/teams/{teamId}

Add team to organization or soft delete team

Adds a team to an organization. If request body contains action=delete, tombstones a team by setting its deletedAt timestamp. The team’s organization mapping remains intact.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.
teamIdstring (uuid)YesTeam ID.

Request body

application/json Optional
Optional action payload for POST on /api/identity/orgs/{orgId}/teams/{teamId}.
FieldTypeRequiredDescription
actionstringNoInternal action to perform on the team resource.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Team added to organization or team tombstoned

application/json

object

Paginated list of team-organization mappings.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
teamsOrganizationsMappingarray of objectNoTeam-organization mapping entries.
totalCountintegerNoTotal number of items across all pages.

object

Paginated list of teams.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
teamsarray of objectNoTeams in this page.
totalCountintegerNoTotal number of items across all pages.
400
Bad request
401
Unauthorized
403
Forbidden

text/plain

404
Not found
500
Internal server error
Team PUT

/api/identity/orgs/{orgId}/teams/{teamId}

Update a team

Updates a team’s information

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
teamIdstring (uuid)YesTeam ID

Request body

application/json Required
Body for updating a team
Payload for updating an existing team
FieldTypeRequiredDescription
descriptionstringNoUpdated team description
namestringNoUpdated team name

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Updated team

application/json

A Team is a group of one or more users. Teams are often used as a grouping mechanism for assigning permissions, whether in the context of an organization, a workspace, or some other domain within Meshery. Learn more at https://docs.meshery.io/concepts/logical/teams
FieldTypeRequiredDescription
idstring (uuid)YesTeam ID
namestringYesTeam name
descriptionstringNoTeam description
ownerstring (uuid)NoUser ID of the owner of the team
metadataobjectNoAdditional metadata for the team
createdAtstring (date-time)YesTimestamp when the team was created.
updatedAtstring (date-time)YesTimestamp when the team was last updated.
deletedAtstring (date-time)NoTimestamp when the team was soft-deleted, if applicable.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team DELETE

/api/identity/orgs/{orgId}/teams/{teamId}

Delete a team

Deletes a team by its ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
teamIdstring (uuid)YesTeam ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Team deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization Organizations POST

/api/identity/orgs/{orgId}/teams/{teamId}/remove

Remove team from organization

Removes (unassigns) a team from an organization.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/remove

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/remove

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}/remove

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.
teamIdstring (uuid)YesTeam ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Team removed from organization

application/json

Paginated list of team-organization mappings.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
teamsOrganizationsMappingarray of objectNoTeam-organization mapping entries.
totalCountintegerNoTotal number of items across all pages.
400
Bad request
401
Unauthorized
403
Forbidden

text/plain

404
Not found
500
Internal server error
Team GET

/api/identity/orgs/{orgId}/teams/{teamId}/users

Get users that are not in a team

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/users

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/users

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}/users

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
teamIdstring (uuid)YesTeam ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Users not currently in the team

application/json

Paginated list of team members.
FieldTypeRequiredDescription
dataarray of objectNoThe data of the teammemberspage.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team POST

/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Add a user to a team

Assigns a user to a team

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
teamIdstring (uuid)YesTeam ID
userIdstringYesUser ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
User added to team

application/json

Join row between users and teams. The schema name is UsersTeamsMapping (rather than TeamsUsersMapping) so that pop’s tableize default produces the live DB table name users_teams_mappings, eliminating the need for an explicit TableName() helper on the generated Go struct.
FieldTypeRequiredDescription
createdAtstring (date-time)NoTimestamp when the mapping was created.
deletedAtstring (date-time)NoTimestamp when the mapping was soft-deleted, if applicable.
idstring (uuid)NoNo description provided.
roleIdstring (uuid)NoOptional role assigned to this team membership. Nullable because a membership may exist without an explicit role (e.g., team-admin assignments are stamped on insert; non-owner adds may leave role_id null until a role is assigned). References roles.id.
teamIdstring (uuid)NoTeam ID
updatedAtstring (date-time)NoTimestamp when the mapping was last updated.
userIdstring (uuid)NoUser ID
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team DELETE

/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Remove a user from a team

Unassigns a user from a team

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/teams/{teamId}/users/{userId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID
teamIdstring (uuid)YesTeam ID
userIdstringYesUser ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
User removed from team
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

User GET

/api/identity/orgs/{orgId}/users

Get organization users

Returns organization users, optionally filtered by team membership.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/users

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/users

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/users

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoGet responses by page size
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses
teamIdstring (uuid)NoOptional team filter when listing organization users

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Paginated list of organization users

application/json

Paginated list of users with organization and team role context
FieldTypeRequiredDescription
dataarray of objectNoThe data of the userspageforadmin.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Invitation POST

/api/identity/orgs/{orgId}/users/invite

Invite users to an organization

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/users/invite

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/users/invite

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/users/invite

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesThe ID of the organization.

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Invitation request accepted

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Key Users GET

/api/identity/orgs/{orgId}/users/keys

Get User Keys

Get all keys based on roles assigned to user

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/users/keys

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/users/keys

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/users/keys

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Returns user keys based on roles assigned to user

application/json

A paginated list of authorization keys.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
totalCountintegerYesTotal number of items across all pages.
keysarray of objectYesKeys returned on the current page.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

User GET

Search users within an organization scope

Searches user accounts on behalf of an organization context and returns the SearchableUser collaboration projection. A blank search returns an empty page.

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/users/search

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/users/search

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/users/search

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Status codes, content types, and response schemas returned by this endpoint.

200
Paginated list of matching users in the searchable projection

application/json

Paginated list of users in the searchable collaboration projection
FieldTypeRequiredDescription
dataarray of objectYesMatching user records for the requested page.
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Organization Organizations POST

/api/identity/orgs/{orgId}/users/{userId}

Add user to organization

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/users/{userId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/users/{userId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/users/{userId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.
userIdstring (uuid)YesUser ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
User added to organization

application/json

400
Invalid request body or request param

text/plain

401
Unauthorized
403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error
Organization Organizations DELETE

/api/identity/orgs/{orgId}/users/{userId}

Remove user from organization

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/orgs/{orgId}/users/{userId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/orgs/{orgId}/users/{userId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/orgs/{orgId}/users/{userId}

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID.
userIdstring (uuid)YesUser ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
User removed from organization
401
Unauthorized
403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error
Role POST

/api/identity/roles

Add role holder

Assigns a role to a user identified by email.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/roles

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/roles

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/roles

Request body

application/json Required
Request body for assigning a role to a user.
FieldTypeRequiredDescription
emailstring (email)YesEmail of the user to assign roles to.
roleNamesarray of stringYesList of role names to assign.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Role holder added
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Role DELETE

/api/identity/roles/{roleId}

Delete role

Removes a role assignment by ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/roles/{roleId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/roles/{roleId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/roles/{roleId}

Parameters

Path parameters

NameTypeRequiredDescription
roleIdstring (uuid)YesRole ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Role deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Team GET

/api/identity/teams/{teamId}/users

Get all users in a team

Gets all users that belong to a team

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/teams/{teamId}/users

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/teams/{teamId}/users

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/teams/{teamId}/users

Parameters

Path parameters

NameTypeRequiredDescription
teamIdstring (uuid)YesTeam ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Team members with their roles

application/json

Paginated list of team members.
FieldTypeRequiredDescription
dataarray of objectNoThe data of the teammemberspage.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Token GET

/api/identity/tokens

Get tokens

Retrieves tokens associated with the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/tokens

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/tokens

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/tokens

Parameters

Query parameters

NameTypeRequiredDescription
isOauthbooleanNoWhether to retrieve OAuth-backed sessions instead of API tokens.
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Tokens response

application/json

A paginated list of tokens.
FieldTypeRequiredDescription
tokensarray of objectYesTokens returned on the current page.
totalCountintegerYesTotal number of tokens across all pages.
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of tokens per page.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Token POST

/api/identity/tokens

Generate token

Generates a token for the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/tokens

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/tokens

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/tokens

Parameters

Query parameters

NameTypeRequiredDescription
namestringYesName of the token.
purposestringNoPurpose for which the token is generated.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Token generated

application/json

A paginated list of tokens.
FieldTypeRequiredDescription
tokensarray of objectYesTokens returned on the current page.
totalCountintegerYesTotal number of tokens across all pages.
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of tokens per page.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Token DELETE

/api/identity/tokens

Delete token

Deletes a specific token for the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/tokens

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/tokens

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/tokens

Parameters

Query parameters

NameTypeRequiredDescription
tokenIdstring (uuid)YesID of the token to delete.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Token deleted

application/json

A paginated list of tokens.
FieldTypeRequiredDescription
tokensarray of objectYesTokens returned on the current page.
totalCountintegerYesTotal number of tokens across all pages.
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of tokens per page.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Token GET

/api/identity/tokens/infinite

Issue indefinite lifetime token

Creates a non-expiring user token for provider admin use cases.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/tokens/infinite

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/tokens/infinite

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/tokens/infinite

Parameters

Query parameters

NameTypeRequiredDescription
userIdstring (uuid)YesUUID of the user to issue the indefinite token for.
providerstringYesAuthentication provider to associate with the indefinite token.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Token generated

application/json

A paginated list of tokens.
FieldTypeRequiredDescription
tokensarray of objectYesTokens returned on the current page.
totalCountintegerYesTotal number of tokens across all pages.
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of tokens per page.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Token GET

/api/identity/tokens/{tokenId}

Download token

Downloads a specific token by its ID for use as a local credential file (e.g. mesheryctl’s auth.json). Gated by the Download Token permission and recorded as a distinct audit event from viewing or listing tokens.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/tokens/{tokenId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/tokens/{tokenId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/tokens/{tokenId}

Parameters

Path parameters

NameTypeRequiredDescription
tokenIdstring (uuid)YesToken ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Token response

application/json

Represents a user-owned API token or OAuth session.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the token.
ownerstring (uuid)YesUUID of the user who owns the token.
providerstringYesAuthentication provider associated with the token.
accessTokenstringYesAccess token value.
refreshTokenstringNoRefresh token value when applicable.
namestringYesHuman-readable token name.
purposestringYesPurpose for which the token was created.
isOauthbooleanYesWhether this entry represents an OAuth session.
createdAtstring (date-time)YesTimestamp when the token was created.
updatedAtstring (date-time)YesTimestamp when the token was last updated.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

User POST

/api/identity/users/anonymous

Create an anonymous user and issue a session token

Mints a synthetic anonymous user account, registers the calling Meshery instance as a connection, and returns an access token together with the capability document for the anonymous session. Authenticated with the shared anonymous-results publishing token rather than a user JWT.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/anonymous

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/anonymous

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/anonymous

Request body

application/json Required
Payload for creating or updating a connection
FieldTypeRequiredDescription
credentialIdstring (uuid)NoAssociated credential ID
credentialSecretobjectNoCredential secret data
idstring (uuid)NoConnection ID
kindstringYesConnection kind
metadataobjectNoConnection metadata
namestringYesConnection name
statusstringYesConnection status
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
subTypestringYesConnection sub-type
typestringYesConnection type

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Anonymous session issued

application/json

Response returned after minting an anonymous user session: the session access token, the ID of the synthetic anonymous user, and the capability document for the session.
FieldTypeRequiredDescription
accessTokenstringYesJWT access token for the anonymous session.
capabilityobjectNoCapability document for the anonymous session. Untyped pending the provider-capabilities schema tracked separately in the identifier-uniformity program.
userIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

Badge PUT

/api/identity/users/badges

Assign badges to a user

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/badges

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/badges

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/badges

Request body

application/json Required
Payload for assigning a set of badges to a user.
FieldTypeRequiredDescription
badgesarray of stringYesLabels of the badges being assigned to the user.
notifybooleanNoWhen true, send a notification to the user about the new badge assignment.
userIdstring (uuid)YesID of the user to receive the badges.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Badge assignment result

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

User POST

/api/identity/users/notify/comment

Notify users mentioned in a design comment

Sends email notifications to the users mentioned in a design comment, to the comment thread participants, and to the design owner, and records a user event for the comment.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/notify/comment

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/notify/comment

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/notify/comment

Request body

application/json Required
Request body for notifying users about a design comment: the users mentioned in the comment, the thread participants, and the comment messages to include in the notification email.
FieldTypeRequiredDescription
designIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
mentionUsersarray of string (uuid)NoIDs of the users explicitly mentioned in the comment.
messagesarray of objectNoThe comment messages to include in the notification email.
participantsarray of string (uuid)NoIDs of the users participating in the comment thread.
usersOptedOutOfNotificationsarray of string (uuid)NoIDs of the users who opted out of mention notifications.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Mention notifications dispatched
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

User GET

/api/identity/users/profile

Get current user profile

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/profile

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/profile

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/profile

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Current user profile and role context

application/json

Represents a user
FieldTypeRequiredDescription
acceptedTermsAtstring (date-time)NoTimestamp when user accepted terms and conditions
avatarUrlstring (uri)NoURL to user’s avatar image
biostringNoUser’s biography or description
countryobjectNoUser’s country information stored as JSONB
createdAtstring (date-time)YesTimestamp when the user record was created
deletedAtstring | null (date-time)YesTimestamp when the user record was soft-deleted (null if not deleted)
emailstring (email)YesUser’s email address
firstLoginTimestring (date-time)NoTimestamp of user’s first login
firstNamestringYesUser’s first name
idstring (uuid)YesUnique identifier for the user
lastLoginTimestring (date-time)YesTimestamp of user’s most recent login
lastNamestringYesUser’s last name
organizationsobjectNoOrganizations the user belongs to with role information
preferencesobjectNoUser preferences stored as JSONB
providerstringYesAuthentication provider (e.g., Google, Github)
regionobjectNoUser’s region information stored as JSONB
roleNamesarray of stringNoNames of the global roles assigned to the user. Free-form, user-generated values sourced from the roles table (role_name is a varchar, not a fixed enumeration); the seeded system roles such as “admin”, “organization admin” and “user” are a subset, not the whole set.
socialsarray of objectNoVarious online profiles associated with the user account
statusstringYesUser account status
teamsobjectNoTeams the user belongs to with role information
updatedAtstring (date-time)YesTimestamp when the user record was last updated
userIdstringYesLegacy IdP-derived identifier. Removed in v1beta3; resolve users by id or email.
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

User GET

/api/identity/users/profile/details

Get profile overview counts for the current user

Returns the aggregate counts shown on the caller’s profile overview: the number of Kubernetes contexts and the number of designs owned by the caller.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/profile/details

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/profile/details

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/profile/details

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Profile overview counts for the caller

application/json

Aggregate counts shown on the current user’s profile overview.
FieldTypeRequiredDescription
k8sCountintegerYesNumber of Kubernetes contexts owned by the user.
patternCountintegerYesNumber of designs owned by the user.
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

User GET

/api/identity/users/profile/{id}

Get user profile by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/profile/{id}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/profile/{id}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/profile/{id}

Parameters

Path parameters

NameTypeRequiredDescription
idstring (uuid)YesUser ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
User profile for the requested ID

application/json

Represents a user
FieldTypeRequiredDescription
acceptedTermsAtstring (date-time)NoTimestamp when user accepted terms and conditions
avatarUrlstring (uri)NoURL to user’s avatar image
biostringNoUser’s biography or description
countryobjectNoUser’s country information stored as JSONB
createdAtstring (date-time)YesTimestamp when the user record was created
deletedAtstring | null (date-time)YesTimestamp when the user record was soft-deleted (null if not deleted)
emailstring (email)YesUser’s email address
firstLoginTimestring (date-time)NoTimestamp of user’s first login
firstNamestringYesUser’s first name
idstring (uuid)YesUnique identifier for the user
lastLoginTimestring (date-time)YesTimestamp of user’s most recent login
lastNamestringYesUser’s last name
organizationsobjectNoOrganizations the user belongs to with role information
preferencesobjectNoUser preferences stored as JSONB
providerstringYesAuthentication provider (e.g., Google, Github)
regionobjectNoUser’s region information stored as JSONB
roleNamesarray of stringNoNames of the global roles assigned to the user. Free-form, user-generated values sourced from the roles table (role_name is a varchar, not a fixed enumeration); the seeded system roles such as “admin”, “organization admin” and “user” are a subset, not the whole set.
socialsarray of objectNoVarious online profiles associated with the user account
statusstringYesUser account status
teamsobjectNoTeams the user belongs to with role information
updatedAtstring (date-time)YesTimestamp when the user record was last updated
userIdstringYesLegacy IdP-derived identifier. Removed in v1beta3; resolve users by id or email.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Invitation GET

/api/identity/users/request

Get signup requests

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/request

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/request

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/request

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Signup requests page

application/json

Paginated list of signup requests.
FieldTypeRequiredDescription
dataarray of objectNoSignup requests returned on the current page.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Invitation POST

/api/identity/users/request

Create a signup request

Authentication

No authentication required

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/request

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/request

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/request

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Signup request created

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Invitation POST

/api/identity/users/request/approve

Approve a signup request

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/request/approve

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/request/approve

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/request/approve

Parameters

Query parameters

NameTypeRequiredDescription
idstring (uuid)YesThe ID of the signup request being approved or denied.
firstNamestringNoFirst name of the requester.
lastNamestringNoLast name of the requester.
emailstring (email)NoEmail address of the requester.
occupationstringNoOccupation of the requester.
organizationstringNoOrganization of the requester.
rolestringNoRequested role.
formTypestringNoThe signup form variant the request originated from.
statusstringNoStatus to record on the signup request.
taskIdstringNoTracking task identifier associated with the request.
taskLinkstringNoTracking task link associated with the request.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Signup request approved

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Invitation POST

/api/identity/users/request/deny

Deny a signup request

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/request/deny

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/request/deny

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/request/deny

Parameters

Query parameters

NameTypeRequiredDescription
idstring (uuid)YesThe ID of the signup request being approved or denied.
firstNamestringNoFirst name of the requester.
lastNamestringNoLast name of the requester.
emailstring (email)NoEmail address of the requester.
occupationstringNoOccupation of the requester.
organizationstringNoOrganization of the requester.
rolestringNoRequested role.
formTypestringNoThe signup form variant the request originated from.
statusstringNoStatus to record on the signup request.
taskIdstringNoTracking task identifier associated with the request.
taskLinkstringNoTracking task link associated with the request.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Signup request denied

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Invitation GET

/api/identity/users/request/notification

Get signup request notification summary

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/request/notification

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/request/notification

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/request/notification

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Signup request notification payload

application/json

Notification about the most recent signup request awaiting moderator action, served by getSignupRequestNotification.
FieldTypeRequiredDescription
preProcessedbooleanYesWhether the signup request was automatically processed before moderator review.
signupDataobjectYesThe signup request the notification refers to.
204
No pending signup request notifications
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

User GET

Search users

Searches user accounts by name, username, or email and returns the SearchableUser collaboration projection. Serves authenticated people-picker flows such as sharing a design with other users. A blank search returns an empty page.

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/search

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/search

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/search

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Status codes, content types, and response schemas returned by this endpoint.

200
Paginated list of matching users in the searchable projection

application/json

Paginated list of users in the searchable collaboration projection
FieldTypeRequiredDescription
dataarray of objectYesMatching user records for the requested page.
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

User DELETE

/api/identity/users/self

Delete the caller's own account

Soft-deletes the caller’s Layer5 Cloud user record and hard-deletes the backing identity. When deleteOrganization is true, the caller’s organization is hard-deleted in the same operation, subject to server-side re-validation: the organization must not be the shared Layer5 provider organization, must not have an active paid subscription, and organizationNameConfirmation must match the stored organization name. When the organization shares resources into other surviving organizations, confirmSharedResourceDestruction must also be true. Inputs are passed as query parameters because DELETE request bodies are unreliable across the extension proxy and intermediate HTTP clients.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/self

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/self

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/self

Parameters

Query parameters

NameTypeRequiredDescription
deleteOrganizationbooleanNoWhen true, hard-delete the caller’s organization along with the account. Defaults to false (delete only the account).
organizationIdstring (uuid)NoIdentifier of the organization to hard-delete. Required by the server when deleteOrganization is true.
organizationNameConfirmationstringNoUser-typed organization name. The server re-validates this against the stored organization name when deleteOrganization is true and rejects the request on mismatch.
confirmSharedResourceDestructionbooleanNoExplicit acknowledgement that resources shared into other surviving organizations will be destroyed. Required by the server when the organization’s crossTenantSharedResourceCount is greater than zero.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Account (and organization, when requested) deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

409
Deletion preconditions were not met. Returned when the target organization is the shared Layer5 provider organization, has an active paid subscription, the caller is not its sole active member, the typed organizationNameConfirmation did not match, or destruction of shared resources was required but not confirmed.

text/plain

500
Internal server error

text/plain

User GET

/api/identity/users/self/account-deletion-eligibility

Get account deletion eligibility

Pre-check evaluated before an account self-deletion is confirmed. Reports whether deleting the caller’s account would also require or permit hard-deleting their organization, whether that organization is the shared Layer5 provider organization or carries an active paid subscription, how many of its resources are also shared into other surviving organizations, and the per-resource blast radius of the deletion.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/self/account-deletion-eligibility

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/self/account-deletion-eligibility

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/self/account-deletion-eligibility

Parameters

Query parameters

NameTypeRequiredDescription
organizationIdstring (uuid)NoOrganization to evaluate for deletion alongside the account. When omitted, the caller’s currently selected organization is evaluated.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Account deletion eligibility for the caller

application/json

Pre-check result returned before an account self-deletion is confirmed. Describes whether deleting the caller’s account would also require or permit hard-deleting their organization and quantifies the blast radius. All fields are always present so the client can render the confirmation state deterministically.
FieldTypeRequiredDescription
crossTenantSharedResourceCountintegerYesCount of resources reachable from this organization that are also shared into a different, surviving organization; destroying them affects other tenants. When greater than zero the client must set confirmSharedResourceDestruction to proceed.
hasActivePaidSubscriptionbooleanYesTrue when the organization has an active paid (non-“Personal”/free) plan subscription that must be cancelled before the organization can be hard-deleted.
impactobjectYesPer-resource counts of the objects that would be destroyed when an organization is hard-deleted alongside the account.
isProviderOrgbooleanYesTrue when this is the shared Layer5 provider organization, which is never deletable regardless of membership.
isSoleActiveMemberbooleanYesTrue when the caller is the only active member of the organization, so deleting their account would leave the organization without any active members.
organizationIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
organizationNamestringYesHuman-readable name of the organization evaluated for deletion. The client echoes this value back as organizationNameConfirmation when requesting deletion.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

User GET

/api/identity/users/{userId}/emails

Get email addresses for a user

Returns all email addresses associated with a user account: the single live primary address (mirrored in users.email) and any secondary addresses accumulated from account consolidation or explicit addition.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/{userId}/emails

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/{userId}/emails

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/{userId}/emails

Parameters

Path parameters

NameTypeRequiredDescription
userIdstring (uuid)YesID of the user

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Email addresses associated with the requested user

application/json

FieldTypeRequiredDescription
createdAtstring (date-time)YesNo description provided.
deletedAtstring | null (date-time)NoSQL null Timestamp to handle null values of time.
emailstring (email)YesThe email address
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
isPrimarybooleanYesExactly one live primary address per user; mirrors users.email
sourcestringYesHow this address became associated with the account
updatedAtstring (date-time)YesNo description provided.
userIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
verifiedbooleanYesWhether the address was verified (per Kratos verifiable addresses) at record time
401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

User GET

/api/identity/users/{userId}/profile/activity

Get recent activity for a user's public profile

Returns the recent-activity feed shown on a user’s public profile. Accessible without authentication; sensitive event categories are filtered out and email addresses are redacted unless the caller is a provider admin or is viewing their own profile. Pagination beyond the first page requires provider-admin privileges.

Authentication

No authentication required

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/identity/users/{userId}/profile/activity

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/identity/users/{userId}/profile/activity

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/identity/users/{userId}/profile/activity

Parameters

Path parameters

NameTypeRequiredDescription
userIdstring (uuid)YesID of the user

Query parameters

NameTypeRequiredDescription
pageintegerNoZero-based page index of the activity feed.
pageSizeintegerNoNumber of activity entries per page.
pagesizeintegerNoDeprecated lowercase alias of pageSize, kept while existing clients migrate to the canonical camelCase parameter.
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Recent-activity page for the requested user

application/json

Paginated recent-activity feed for a user’s public profile.
FieldTypeRequiredDescription
activitiesarray of objectNoThe activity entries on the current page.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
400
Invalid request body or request param

text/plain

500
Internal server error

text/plain

Connection API Connections GET

/api/integrations/connections

Get all connections

Returns a paginated list of connections for the authenticated user with filtering, sorting and pagination support

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoPage number
pageSizeintegerNoNumber of items per page
searchstringNoSearch term
orderstringNoSort order
orgIdstring (uuid)NoOrganization ID to scope the request.
filterstringNoFilter connections (general filter string)
kindarray of stringNoFilter by connection kind (e.g., kubernetes, prometheus, grafana)
statusarray of stringNoFilter by connection status
typearray of stringNoFilter by connection type
namestringNoFilter by connection name (partial match supported)

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Paginated list of connections with summary information

application/json

Represents a page of connections with meta information about connections count
FieldTypeRequiredDescription
connectionsarray of objectYesList of connections on this page
totalCountintegerYesTotal number of connections on all pages
pageintegerYesCurrent page number
pageSizeintegerYesNumber of elements per page
statusSummaryobjectNoAggregate count of connections grouped by status
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Connection API Connections POST

/api/integrations/connections

Register a new connection

Register a new connection with credentials

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections

Request body

application/json Required
Payload for creating or updating a connection
FieldTypeRequiredDescription
credentialIdstring (uuid)NoAssociated credential ID
credentialSecretobjectNoCredential secret data
idstring (uuid)NoConnection ID
kindstringYesConnection kind
metadataobjectNoConnection metadata
namestringYesConnection name
statusstringYesConnection status
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
subTypestringYesConnection sub-type
typestringYesConnection type

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Connection registered

application/json

Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections
FieldTypeRequiredDescription
idstring (uuid)YesConnection ID
namestringYesConnection Name
descriptionstringNoHuman-readable description of the connection and its purpose.
urlstring (uri)NoURL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).
credentialIdstring (uuid)NoAssociated Credential ID
typestringYesConnection Type (platform, telemetry, collaboration)
subTypestringYesConnection Subtype (cloud, identity, metrics, chat, git, orchestration)
kindstringYesConnection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)
modelReferenceobjectNoReference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models
connectionSchemaobjectNoSchema for the connection
credentialSchemaobjectNoSchema for the credential Associated with the connection
metadataobjectNoAdditional connection metadata
statusstringYesConnection Status
ownerstring (uuid)NoUser ID who owns this connection
createdAtstring (date-time)NoTimestamp when the connection was created.
updatedAtstring (date-time)NoTimestamp when the connection was last updated.
deletedAtstring | null (date-time)NoTimestamp when the connection was soft-deleted, if applicable.
environmentsarray of objectNoAssociated environments for this connection
schemaVersionstringYesSpecifies the version of the schema used for the definition.
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
transitionMapobjectNoMap describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Connection API Connections GET

/api/integrations/connections/kubernetes/{connectionId}/context

Get Kubernetes context

Get Kubernetes context for a specific connection

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections/kubernetes/{connectionId}/context

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections/kubernetes/{connectionId}/context

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections/kubernetes/{connectionId}/context

Parameters

Path parameters

NameTypeRequiredDescription
connectionIdstring (uuid)YesConnection ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Kubernetes context

application/json

Paginated list of Kubernetes contexts.
FieldTypeRequiredDescription
contextsarray of objectYesKubernetes contexts in this page.
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
totalCountintegerYesTotal number of items across all pages.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API Connections DELETE

/api/integrations/connections/meshery/{mesheryServerId}

Delete Meshery instance connection

Delete a Meshery server connection by server ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections/meshery/{mesheryServerId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections/meshery/{mesheryServerId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections/meshery/{mesheryServerId}

Parameters

Path parameters

NameTypeRequiredDescription
mesheryServerIdstring (uuid)YesMeshery server ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Meshery connection deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API Connections GET

/api/integrations/connections/{connectionId}

Get connection by ID

Returns a specific connection by its ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections/{connectionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections/{connectionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections/{connectionId}

Parameters

Path parameters

NameTypeRequiredDescription
connectionIdstring (uuid)YesConnection ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Connection details

application/json

Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections
FieldTypeRequiredDescription
idstring (uuid)YesConnection ID
namestringYesConnection Name
descriptionstringNoHuman-readable description of the connection and its purpose.
urlstring (uri)NoURL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).
credentialIdstring (uuid)NoAssociated Credential ID
typestringYesConnection Type (platform, telemetry, collaboration)
subTypestringYesConnection Subtype (cloud, identity, metrics, chat, git, orchestration)
kindstringYesConnection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)
modelReferenceobjectNoReference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models
connectionSchemaobjectNoSchema for the connection
credentialSchemaobjectNoSchema for the credential Associated with the connection
metadataobjectNoAdditional connection metadata
statusstringYesConnection Status
ownerstring (uuid)NoUser ID who owns this connection
createdAtstring (date-time)NoTimestamp when the connection was created.
updatedAtstring (date-time)NoTimestamp when the connection was last updated.
deletedAtstring | null (date-time)NoTimestamp when the connection was soft-deleted, if applicable.
environmentsarray of objectNoAssociated environments for this connection
schemaVersionstringYesSpecifies the version of the schema used for the definition.
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
transitionMapobjectNoMap describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API Connections PUT

/api/integrations/connections/{connectionId}

Update a connection

Update an existing connection

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections/{connectionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections/{connectionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections/{connectionId}

Parameters

Path parameters

NameTypeRequiredDescription
connectionIdstring (uuid)YesConnection ID

Request body

application/json Required
Payload for creating or updating a connection
FieldTypeRequiredDescription
credentialIdstring (uuid)NoAssociated credential ID
credentialSecretobjectNoCredential secret data
idstring (uuid)NoConnection ID
kindstringYesConnection kind
metadataobjectNoConnection metadata
namestringYesConnection name
statusstringYesConnection status
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
subTypestringYesConnection sub-type
typestringYesConnection type

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Connection updated

application/json

Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections
FieldTypeRequiredDescription
idstring (uuid)YesConnection ID
namestringYesConnection Name
descriptionstringNoHuman-readable description of the connection and its purpose.
urlstring (uri)NoURL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).
credentialIdstring (uuid)NoAssociated Credential ID
typestringYesConnection Type (platform, telemetry, collaboration)
subTypestringYesConnection Subtype (cloud, identity, metrics, chat, git, orchestration)
kindstringYesConnection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)
modelReferenceobjectNoReference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models
connectionSchemaobjectNoSchema for the connection
credentialSchemaobjectNoSchema for the credential Associated with the connection
metadataobjectNoAdditional connection metadata
statusstringYesConnection Status
ownerstring (uuid)NoUser ID who owns this connection
createdAtstring (date-time)NoTimestamp when the connection was created.
updatedAtstring (date-time)NoTimestamp when the connection was last updated.
deletedAtstring | null (date-time)NoTimestamp when the connection was soft-deleted, if applicable.
environmentsarray of objectNoAssociated environments for this connection
schemaVersionstringYesSpecifies the version of the schema used for the definition.
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
transitionMapobjectNoMap describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API Connections DELETE

/api/integrations/connections/{connectionId}

Delete a connection

Delete a specific connection

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/connections/{connectionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/connections/{connectionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/connections/{connectionId}

Parameters

Path parameters

NameTypeRequiredDescription
connectionIdstring (uuid)YesConnection ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Connection deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Credential GET

/api/integrations/credentials

Get credentials

Retrieves all credentials belonging to the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/credentials

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/credentials

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/credentials

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Credentials response

application/json

A paginated list of credentials.
FieldTypeRequiredDescription
credentialsarray of objectYesThe credentials returned on the current page.
totalCountintegerYesTotal number of credentials across all pages.
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of credentials per page.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Credential POST

/api/integrations/credentials

Save credential

Saves a new credential for the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/credentials

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/credentials

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/credentials

Request body

application/json Required
Payload for creating or updating a credential.
FieldTypeRequiredDescription
idstring (uuid)NoExisting credential ID for updates; omit on create.
namestringYesHuman-readable name for the credential.
userIdstring (uuid)NoUUID of the user who owns this credential.
orgOwnerstring (uuid)NoUUID of the organization to designate as the owner of this credential. A caller may supply this field; the server authorizes it against the authenticated principal and rejects the request when that principal may not write for the named organization.
typestringYesCredential type (e.g. token, basic, AWS).
secretobjectNoKey-value pairs containing the sensitive credential data.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Credential saved

application/json

Meshery Credentials store sensitive information such as API keys, tokens, and passwords used by connections to external systems.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the credential.
namestringYesHuman-readable name for the credential.
userIdstring (uuid)YesUUID of the user who owns this credential.
orgOwnerstring (uuid)NoUUID of the organization designated as the owner of this credential, for credentials that belong to a brand profile rather than to a person. Optional and independent of userId: userId continues to identify the user who created and owns the record, while orgOwner designates the organization the credential is for.
typestringYesCredential type (e.g. token, basic, AWS).
secretobjectNoKey-value pairs containing the sensitive credential data.
createdAtstring (date-time)YesTimestamp when the credential was created.
updatedAtstring (date-time)YesTimestamp when the credential was last updated.
deletedAtstring (date-time)NoTimestamp when the credential was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Credential PUT

/api/integrations/credentials

Update credential

Updates an existing credential for the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/credentials

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/credentials

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/credentials

Request body

application/json Required
Payload for creating or updating a credential.
FieldTypeRequiredDescription
idstring (uuid)NoExisting credential ID for updates; omit on create.
namestringYesHuman-readable name for the credential.
userIdstring (uuid)NoUUID of the user who owns this credential.
orgOwnerstring (uuid)NoUUID of the organization to designate as the owner of this credential. A caller may supply this field; the server authorizes it against the authenticated principal and rejects the request when that principal may not write for the named organization.
typestringYesCredential type (e.g. token, basic, AWS).
secretobjectNoKey-value pairs containing the sensitive credential data.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Credential updated

application/json

Meshery Credentials store sensitive information such as API keys, tokens, and passwords used by connections to external systems.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the credential.
namestringYesHuman-readable name for the credential.
userIdstring (uuid)YesUUID of the user who owns this credential.
orgOwnerstring (uuid)NoUUID of the organization designated as the owner of this credential, for credentials that belong to a brand profile rather than to a person. Optional and independent of userId: userId continues to identify the user who created and owns the record, while orgOwner designates the organization the credential is for.
typestringYesCredential type (e.g. token, basic, AWS).
secretobjectNoKey-value pairs containing the sensitive credential data.
createdAtstring (date-time)YesTimestamp when the credential was created.
updatedAtstring (date-time)YesTimestamp when the credential was last updated.
deletedAtstring (date-time)NoTimestamp when the credential was soft-deleted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Credential DELETE

/api/integrations/credentials

Delete credential

Deletes a credential belonging to the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/credentials

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/credentials

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/credentials

Parameters

Query parameters

NameTypeRequiredDescription
credentialIdstring (uuid)YesCredential ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Credential deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Credential GET

/api/integrations/credentials/{credentialId}

Get credential by ID

Retrieves a specific credential by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/credentials/{credentialId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/credentials/{credentialId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/credentials/{credentialId}

Parameters

Path parameters

NameTypeRequiredDescription
credentialIdstring (uuid)YesCredential ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Credential response

application/json

Meshery Credentials store sensitive information such as API keys, tokens, and passwords used by connections to external systems.
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the credential.
namestringYesHuman-readable name for the credential.
userIdstring (uuid)YesUUID of the user who owns this credential.
orgOwnerstring (uuid)NoUUID of the organization designated as the owner of this credential, for credentials that belong to a brand profile rather than to a person. Optional and independent of userId: userId continues to identify the user who created and owns the record, while orgOwner designates the organization the credential is for.
typestringYesCredential type (e.g. token, basic, AWS).
secretobjectNoKey-value pairs containing the sensitive credential data.
createdAtstring (date-time)YesTimestamp when the credential was created.
updatedAtstring (date-time)YesTimestamp when the credential was last updated.
deletedAtstring (date-time)NoTimestamp when the credential was soft-deleted.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Model GET

/api/integrations/meshmodels/models

Get mesh model models

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/meshmodels/models

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/meshmodels/models

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/meshmodels/models

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
searchstringNoFree-text search query applied to model names.
orderstringNoSort order for the result set (e.g. “name asc”).

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Model and capabilities registry entries retrieved.

application/json

Page of mesh models matching the list-endpoint query.
FieldTypeRequiredDescription
modelsarray of objectNoThe models matching the list-endpoint query.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error
Support POST

/api/integrations/support

Submit a support request

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/integrations/support

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/integrations/support

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/integrations/support

Request body

application/json Required
Payload for submitting a help-and-support request.
FieldTypeRequiredDescription
messagestringYesDetailed description of the issue or question.
scopestringNoCategory that best represents the nature of the inquiry.
subjectstringYesConcise and descriptive title for the support request.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Support request submitted

application/json

FieldTypeRequiredDescription
messagestringNoNo description provided.
400
Invalid request format
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error
Badge POST

/api/organizations/badges

Create a new badge or update an existing badge

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/badges

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/badges

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/badges

Request body

application/json Required
Payload for creating or updating a badge.
FieldTypeRequiredDescription
descriptionstringYesA description of the milestone achieved, often including criteria for receiving this recognition.
idstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
imageUrlstring (uri)YesURL to the badge image.
labelstringYesUnique identifier for the badge, typically slug-style (auto generated).
namestringYesConcise descriptor for the badge or certificate.
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Badge upserted

application/json

Badge entity — a named recognition issued within an organization.
FieldTypeRequiredDescription
createdAtstring (date-time)YesTimestamp when the badge was created.
deletedAtstring (date-time)YesTimestamp when the badge was soft-deleted, if applicable.
descriptionstringYesA description of the milestone achieved, often including criteria for receiving this recognition.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
imageUrlstring (uri)YesURL to the badge image.
labelstringYesUnique identifier for the badge, typically slug-style (auto generated).
namestringYesConcise descriptor for the badge or certificate.
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
updatedAtstring (date-time)YesTimestamp when the badge was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

409
Badge label conflict. The badge label is already owned by a different organization, so the upsert was refused rather than overwriting another organization’s badge.

text/plain

500
Internal server error

text/plain

Badge GET

/api/organizations/badges/{badgeId}

Get a badge by its ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/badges/{badgeId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/badges/{badgeId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/badges/{badgeId}

Parameters

Path parameters

NameTypeRequiredDescription
badgeIdstring (uuid)YesBadge ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Badge response

application/json

Badge entity — a named recognition issued within an organization.
FieldTypeRequiredDescription
createdAtstring (date-time)YesTimestamp when the badge was created.
deletedAtstring (date-time)YesTimestamp when the badge was soft-deleted, if applicable.
descriptionstringYesA description of the milestone achieved, often including criteria for receiving this recognition.
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
imageUrlstring (uri)YesURL to the badge image.
labelstringYesUnique identifier for the badge, typically slug-style (auto generated).
namestringYesConcise descriptor for the badge or certificate.
orgIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
updatedAtstring (date-time)YesTimestamp when the badge was last updated.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Badge DELETE

/api/organizations/badges/{badgeId}

Delete a badge by its ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/badges/{badgeId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/badges/{badgeId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/badges/{badgeId}

Parameters

Path parameters

NameTypeRequiredDescription
badgeIdstring (uuid)YesBadge ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Badge deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Invitation GET

/api/organizations/invitations

Get a paginated list of invitations for the organization

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/invitations

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/invitations

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/invitations

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizeintegerNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Invitations page

application/json

Paginated list of invitations for an organization.
FieldTypeRequiredDescription
dataarray of objectNoInvitations returned on the current page.
pageintegerNoCurrent page number of the result set.
pageSizeintegerNoNumber of items per page.
totalCountintegerNoTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Invitation POST

/api/organizations/invitations

Create a new invitation for the organization

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/invitations

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/invitations

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/invitations

Request body

application/json Required
Payload for creating or updating an invitation.
FieldTypeRequiredDescription
descriptionstringYesDescription of the invitation.
emailsarray of stringYesEmail addresses or patterns this invitation is valid for.
expiresAtstring (date-time)NoTimestamp when the invitation expires, if applicable.
idstring (uuid)NoExisting invitation ID for updates; omit on create.
isDefaultbooleanNoIndicates whether the invitation is a default invitation (open invite).
namestringYesName of the invitation.
orgIdstring (uuid)YesID of the organization to which the user is invited.
ownerstring (uuid)NoID of the user who created the invitation.
quotaintegerNoQuota for the invitation; limits the number of users that can accept it.
rolesarray of stringYesRoles that the user will have when accepting the invitation.
statusstringYesActivation status of the invitation.
teamsarray of stringYesTeams that the user will be added to when accepting the invitation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Invitation created

application/json

Invitation entity schema.
FieldTypeRequiredDescription
acceptedByarray of stringYesList of user ids that have already accepted the invitation. Empty means the invitation has not been used yet.
createdAtstring (date-time)YesTimestamp when the invitation was created.
deletedAtstring | null (date-time)YesTimestamp when the invitation was deleted, if applicable.
descriptionstringYesDescription of the invitation, which can be used to provide additional context. Null or empty string means the invitation does not have a description.
emailsarray of string | nullYesEmail addresses or patterns for which the invitation is valid. Null means the invitation is valid for any email address.
expiresAtstring | null (date-time)NoTimestamp when the invitation expires, if applicable. Null or empty means the invitation does not expire.
idstring (uuid)YesUnique identifier for the invitation, also used as the invitation code.
isDefaultbooleanNoIndicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain. An organization can only have one default invitation.
namestringYesName of the invitation, which can be used to identify it. Required; cannot be an empty string.
orgIdstring (uuid)YesID of the organization to which the user is invited.
ownerstring (uuid)YesID of the user who created the invitation. Tracks who created the invitation for auditing purposes.
quotaintegerNoQuota for the invitation; limits the number of users that can accept it. Null or empty means the invitation is unlimited.
rolesarray of stringYesRoles that the user will have when accepting the invitation. Empty means the invitation does not specify any roles.
statusstringYesActivation status of the invitation.
teamsarray of stringYesTeams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams.
updatedAtstring (date-time)YesTimestamp when the invitation was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

500
Internal server error

text/plain

Invitation GET

/api/organizations/invitations/{invitationId}

Get an invitation by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/invitations/{invitationId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/invitations/{invitationId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/invitations/{invitationId}

Parameters

Path parameters

NameTypeRequiredDescription
invitationIdstring (uuid)YesThe ID of the invitation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Invitation fetched

application/json

Invitation entity schema.
FieldTypeRequiredDescription
acceptedByarray of stringYesList of user ids that have already accepted the invitation. Empty means the invitation has not been used yet.
createdAtstring (date-time)YesTimestamp when the invitation was created.
deletedAtstring | null (date-time)YesTimestamp when the invitation was deleted, if applicable.
descriptionstringYesDescription of the invitation, which can be used to provide additional context. Null or empty string means the invitation does not have a description.
emailsarray of string | nullYesEmail addresses or patterns for which the invitation is valid. Null means the invitation is valid for any email address.
expiresAtstring | null (date-time)NoTimestamp when the invitation expires, if applicable. Null or empty means the invitation does not expire.
idstring (uuid)YesUnique identifier for the invitation, also used as the invitation code.
isDefaultbooleanNoIndicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain. An organization can only have one default invitation.
namestringYesName of the invitation, which can be used to identify it. Required; cannot be an empty string.
orgIdstring (uuid)YesID of the organization to which the user is invited.
ownerstring (uuid)YesID of the user who created the invitation. Tracks who created the invitation for auditing purposes.
quotaintegerNoQuota for the invitation; limits the number of users that can accept it. Null or empty means the invitation is unlimited.
rolesarray of stringYesRoles that the user will have when accepting the invitation. Empty means the invitation does not specify any roles.
statusstringYesActivation status of the invitation.
teamsarray of stringYesTeams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams.
updatedAtstring (date-time)YesTimestamp when the invitation was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Invitation PUT

/api/organizations/invitations/{invitationId}

Update an existing invitation

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/invitations/{invitationId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/invitations/{invitationId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/invitations/{invitationId}

Parameters

Path parameters

NameTypeRequiredDescription
invitationIdstring (uuid)YesThe ID of the invitation.

Request body

application/json Required
Payload for creating or updating an invitation.
FieldTypeRequiredDescription
descriptionstringYesDescription of the invitation.
emailsarray of stringYesEmail addresses or patterns this invitation is valid for.
expiresAtstring (date-time)NoTimestamp when the invitation expires, if applicable.
idstring (uuid)NoExisting invitation ID for updates; omit on create.
isDefaultbooleanNoIndicates whether the invitation is a default invitation (open invite).
namestringYesName of the invitation.
orgIdstring (uuid)YesID of the organization to which the user is invited.
ownerstring (uuid)NoID of the user who created the invitation.
quotaintegerNoQuota for the invitation; limits the number of users that can accept it.
rolesarray of stringYesRoles that the user will have when accepting the invitation.
statusstringYesActivation status of the invitation.
teamsarray of stringYesTeams that the user will be added to when accepting the invitation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Invitation updated

application/json

Invitation entity schema.
FieldTypeRequiredDescription
acceptedByarray of stringYesList of user ids that have already accepted the invitation. Empty means the invitation has not been used yet.
createdAtstring (date-time)YesTimestamp when the invitation was created.
deletedAtstring | null (date-time)YesTimestamp when the invitation was deleted, if applicable.
descriptionstringYesDescription of the invitation, which can be used to provide additional context. Null or empty string means the invitation does not have a description.
emailsarray of string | nullYesEmail addresses or patterns for which the invitation is valid. Null means the invitation is valid for any email address.
expiresAtstring | null (date-time)NoTimestamp when the invitation expires, if applicable. Null or empty means the invitation does not expire.
idstring (uuid)YesUnique identifier for the invitation, also used as the invitation code.
isDefaultbooleanNoIndicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain. An organization can only have one default invitation.
namestringYesName of the invitation, which can be used to identify it. Required; cannot be an empty string.
orgIdstring (uuid)YesID of the organization to which the user is invited.
ownerstring (uuid)YesID of the user who created the invitation. Tracks who created the invitation for auditing purposes.
quotaintegerNoQuota for the invitation; limits the number of users that can accept it. Null or empty means the invitation is unlimited.
rolesarray of stringYesRoles that the user will have when accepting the invitation. Empty means the invitation does not specify any roles.
statusstringYesActivation status of the invitation.
teamsarray of stringYesTeams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams.
updatedAtstring (date-time)YesTimestamp when the invitation was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Forbidden

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Invitation DELETE

/api/organizations/invitations/{invitationId}

Delete an invitation by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/invitations/{invitationId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/invitations/{invitationId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/invitations/{invitationId}

Parameters

Path parameters

NameTypeRequiredDescription
invitationIdstring (uuid)YesThe ID of the invitation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Invitation deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Invitation POST

/api/organizations/invitations/{invitationId}/accept

Accept an invitation by ID

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/organizations/invitations/{invitationId}/accept

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/organizations/invitations/{invitationId}/accept

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/organizations/invitations/{invitationId}/accept

Parameters

Path parameters

NameTypeRequiredDescription
invitationIdstring (uuid)YesThe ID of the invitation.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Invitation accepted

application/json

Invitation entity schema.
FieldTypeRequiredDescription
acceptedByarray of stringYesList of user ids that have already accepted the invitation. Empty means the invitation has not been used yet.
createdAtstring (date-time)YesTimestamp when the invitation was created.
deletedAtstring | null (date-time)YesTimestamp when the invitation was deleted, if applicable.
descriptionstringYesDescription of the invitation, which can be used to provide additional context. Null or empty string means the invitation does not have a description.
emailsarray of string | nullYesEmail addresses or patterns for which the invitation is valid. Null means the invitation is valid for any email address.
expiresAtstring | null (date-time)NoTimestamp when the invitation expires, if applicable. Null or empty means the invitation does not expire.
idstring (uuid)YesUnique identifier for the invitation, also used as the invitation code.
isDefaultbooleanNoIndicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain. An organization can only have one default invitation.
namestringYesName of the invitation, which can be used to identify it. Required; cannot be an empty string.
orgIdstring (uuid)YesID of the organization to which the user is invited.
ownerstring (uuid)YesID of the user who created the invitation. Tracks who created the invitation for auditing purposes.
quotaintegerNoQuota for the invitation; limits the number of users that can accept it. Null or empty means the invitation is unlimited.
rolesarray of stringYesRoles that the user will have when accepting the invitation. Empty means the invitation does not specify any roles.
statusstringYesActivation status of the invitation.
teamsarray of stringYesTeams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams.
updatedAtstring (date-time)YesTimestamp when the invitation was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp GET

/api/orgs/{orgId}/environments/mail-relay

Probe whether an organization has brought its own mail server

Returns the organization’s mail-relay environment when it exists. A 404 is the ordinary answer for an organization using the provider’s shared relay, and is not an error condition.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The organization has its own mail-relay environment. The canonical Environment shape, not a bespoke one: this endpoint returns an ordinary environment row that happens to carry the well-known name.

application/json

Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments
FieldTypeRequiredDescription
idstring (uuid)YesID
schemaVersionstringYesSpecifies the version of the schema to which the environment conforms.
namestringYesEnvironment name
descriptionstringYesEnvironment description
organizationIdstring (uuid)YesEnvironment organization ID
ownerstring (uuid)NoEnvironment owner
createdAtstring (date-time)NoTimestamp when the environment was created.
metadataobjectNoAdditional metadata associated with the environment.
updatedAtstring (date-time)NoTimestamp when the environment was last updated.
deletedAtstring | null (date-time)NoTimestamp when the environment was soft deleted. Null while the environment remains active.
purposestringNo

What the environment exists for. user is an ordinary environment that people create to logically group Connections and their Credentials. administrative designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.

Absent means user. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for “not user”, so the property fails closed.

At most one live environment per organization may carry any single privileged purpose - administrative, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a “not user” test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.

Server-owned and not client-settable. It is absent from EnvironmentPayload, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so registerRegistryComponent and registerRegistryRelationship do carry purpose in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.

The database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer’s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.

Example response

{
  "createdAt": "0001-01-01T00:00:00Z",
  "deletedAt": null,
  "description": "Connections and credentials for the production cluster.",
  "id": "00000000-0000-0000-0000-000000000000",
  "metadata": {},
  "name": "Production Environment",
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "owner": "00000000-0000-0000-0000-000000000000",
  "purpose": "user",
  "schemaVersion": "environments.meshery.io/v1beta3",
  "updatedAt": "0001-01-01T00:00:00Z"
}
401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp DELETE

/api/orgs/{orgId}/environments/mail-relay

Remove an organization's mail server entirely

Removes the configuration, its stored credential and the environment that held them, together. The organization’s mail reverts to the provider’s shared relay. Idempotent, and deliberately declares no 404: removing an absent configuration succeeds with the same 204 as removing a present one, so “not found” is not an outcome this operation has. An unknown or unauthorized organization is answered by the permission middleware before the handler runs.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
The configuration was removed.
401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp GET

/api/orgs/{orgId}/environments/mail-relay/connection

Get an organization's SMTP configuration

Returns the organization’s mail server configuration, including its current status and from-domain verification state. The password is always the redaction sentinel ***.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/connection

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The organization’s SMTP configuration.

application/json

An organization’s own outbound mail server. When present and healthy, every transactional email whose reader belongs to this organization - application notifications and identity-flow mail (account verification, password recovery) alike - is delivered through this server rather than through the provider’s shared relay, so the message leaves from the organization’s own domain. At most one live configuration exists per organization. The SMTP password is encrypted at rest and is never returned; reads always carry the redaction sentinel instead.

This is a WIRE contract only. It is not backed by a table of its own: the configuration is stored on the same environment/connection/credential chain that bring-your-own identity providers already uses - a well-known per-organization Environment, joined through environments_connections_mappings to a Connection whose credential_id points at a Credential. The organization relationship lives on environments.organization_id, the dial target on connections.url and connections.metadata, the transport verdict on connections.status, and the password alone in credentials.secret.

No property here carries a construct-specific db tag, because no property here names a column of its own. The exception is deliberate and inherited: createdAt and updatedAt $ref the shared core definitions, which declare db: created_at / db: updated_at for every construct that uses them, and those two tags are accurate for the underlying connection row.

FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
organizationIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. The server additionally restricts this to a submission-port allowlist; a syntactically valid port outside it is refused.
encryptionstringYesTransport encryption to negotiate. starttls upgrades a cleartext connection (typically port 587), tls opens an implicit TLS connection (typically port 465), and none sends in cleartext and is intended only for an internal relay on a trusted network.
authMechanismstringYesSMTP authentication mechanism. none is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
usernamestringNoUsername presented to the organization’s SMTP server. Held beside the host rather than with the password because it is an identifier rather than a secret, and the health surface must show it without a decryption round trip. It is usually an email address, so it is returned only on an authorized read.
passwordstringNoPresent only when a password is stored, and then always the redaction sentinel *** - never the stored value, which is encrypted at rest and is never projected into a response. Its presence is therefore the only thing it reports: a configuration whose authMechanism is none stores no password and omits this property entirely. It is optional rather than required for exactly that reason. Read-only, and read-only here means read-only: no request body references this schema. The write semantics belong to the payload schemas - OrganizationSmtpConfigurationPayload on create and OrganizationSmtpCredentialPayload on rotation - and are documented there.
fromAddressstring (email)YesAddress the organization’s mail is sent from. Its domain must be verified before mail is routed through this server.
fromDisplayNamestringNoDisplay name shown alongside the from address in the message header.
replyToAddressstring (email)NoAddress replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider’s own so the message stays aligned for SPF and DMARC.
statusstringYes

Lifecycle and transport verdict, carrying the connection status vocabulary because the configuration IS a connection. registered means configured but never proven - the from domain is unverified, or no message has yet been delivered - and mail takes the provider relay. connected means the last delivery attempt succeeded and mail is routed through this server. disconnected means the most recent delivery attempt did not succeed, and fallbackToProvider governs what becomes of that message. It is a verdict on the last attempt alone: a SINGLE failure records it, there is no failure threshold, and the status does not by itself stop the server being dialled for the next message. Read it as “the last attempt failed”, not as “this server has been taken out of rotation” - the circuit breaker that would do the latter is planned, not built, and is tracked in meshery-cloud#6057. ignored means an administrator turned it off.

The writers are disjoint on purpose: only an administrator writes ignored, and only a delivery outcome writes connected or disconnected. That is what keeps a deliberate opt-out distinguishable from a failing relay. It also makes “enabled while the from domain is unverified” unrepresentable rather than merely forbidden, which is why this property replaces the separate enabled and verificationState pair it supersedes.

fallbackToProviderbooleanYesWhether a message that this server fails to accept is re-sent through the provider’s shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
fromDomainstringNoRegistrable domain of the from address, held separately as the unit that ownership is proven for.
fromDomainVerificationTokenstringNoToken the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access.
fromDomainVerifiedAtstring | null (date-time)NoTimestamp at which control of the from domain was last proven. Null while unproven.
lastSuccessAtstring | null (date-time)NoTimestamp of the last message this server accepted.
lastFailureAtstring | null (date-time)NoTimestamp of the last delivery attempt this server rejected or failed to accept.
lastFailureReasonstringNoClassification of the last failure. Always a classification, never the remote server’s own message: the set is closed on purpose, because reporting a remote server’s text back to a caller would turn a refusal into an oracle for what the network can reach.
consecutiveFailuresintegerYesCount of delivery attempts that have failed since the last success, reset to zero by a success. It is a RECORD and nothing more: no threshold reads it, and reaching any particular value does not itself stop a persistently unreachable server being dialled. A consumer must not treat a non-zero count as protection already in place. The circuit breaker that would consume this count - and which needs a threshold, a reset policy, and a decision about its interaction with fallbackToProvider, where an open circuit with fallback off drops account-verification and password-recovery mail - is planned under meshery-cloud#6057.
createdBystring | null (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
createdAtstring (date-time)YesTimestamp when the configuration was created.
updatedAtstring (date-time)YesTimestamp when the configuration was last changed.
deletedAtstring | null (date-time)NoTimestamp when the configuration was soft deleted. Null while it remains active.

Example response

{
  "authMechanism": "plain",
  "consecutiveFailures": 0,
  "createdAt": "0001-01-01T00:00:00Z",
  "createdBy": "00000000-0000-0000-0000-000000000000",
  "deletedAt": null,
  "encryption": "starttls",
  "fallbackToProvider": true,
  "fromAddress": "[email protected]",
  "fromDisplayName": "Example Corp",
  "fromDomain": "example.com",
  "fromDomainVerificationToken": "0f6a5d2c9b1e4a7f8c3d6b0e2a4f7c19",
  "fromDomainVerifiedAt": null,
  "host": "smtp.example.com",
  "id": "00000000-0000-0000-0000-000000000000",
  "lastFailureAt": null,
  "lastSuccessAt": null,
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "password": "***",
  "port": 587,
  "replyToAddress": "[email protected]",
  "status": "registered",
  "updatedAt": "0001-01-01T00:00:00Z",
  "username": "[email protected]"
}
401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp POST

/api/orgs/{orgId}/environments/mail-relay/connection

Register an organization's SMTP server

Creates the configuration, provisioning the mail-relay environment on the organization’s behalf when it does not yet exist. This is the only operation that accepts the password alongside the settings; afterwards the two are written separately. The new configuration starts unproven, so mail continues to take the provider relay until the from domain is verified and a test delivery succeeds. Declares no 404 for the same reason the delete does not: this operation brings the configuration into existence, so its absence beforehand is the normal case rather than an error.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/connection

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
Everything needed to register an organization’s mail server, settings and password together, so that registration is one operation. Accepted only on create; afterwards the settings and the credential are written by separate operations. status, the delivery counters behind it, the from-domain proof and the timestamps are all server-owned and are not accepted here. A new configuration therefore always starts at registered, whatever the caller sends.
FieldTypeRequiredDescription
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. Restricted further by a submission-port allowlist.
encryptionstringNoTransport encryption to negotiate. starttls upgrades a cleartext connection (typically port 587), tls opens an implicit TLS connection (typically port 465), and none sends in cleartext.
authMechanismstringNoSMTP authentication mechanism. Any mechanism other than none requires both a username and a password.
usernamestringNoUsername presented to the organization’s SMTP server. Required by the server, together with password, for every authMechanism other than none; see that property for why the pairing is a server-enforced contract rather than a schema constraint.
passwordstringNoPassword presented to the organization’s SMTP server. The server requires it, together with username, for every authMechanism other than none, and answers 400 when either is missing. That rule is deliberately NOT encoded in required or as a oneOf/if-then. Both encodings were measured against the generator: if/then collapses this payload to interface{}, and oneOf injects a union json.RawMessage field with a custom marshaller, either of which costs every consumer its generated type or its wire behaviour to express a constraint the server enforces anyway. Treat this property as conditionally required by contract, not by schema. This is the ONLY operation that accepts the password alongside the settings, so that registering a mail server is one call and no configuration exists in a state where it is expected to send but holds no credential. Afterwards the password is written only by the rotation operation, never by the settings update, whose payload declares no password property at all. The redaction sentinel *** is refused, and so is the empty string - omit the property instead of sending it empty, which the minLength below enforces so this payload and the rotation payload agree.
fromAddressstring (email)YesAddress the organization’s mail is sent from.
fromDisplayNamestringNoDisplay name shown alongside the from address.
replyToAddressstring (email)NoAddress replies are directed to.
fallbackToProviderbooleanNoWhether a message this server fails to accept is re-sent through the provider’s shared relay. Disabling it means a failure is a dropped message, account verification and password recovery included.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
The stored SMTP configuration.

application/json

An organization’s own outbound mail server. When present and healthy, every transactional email whose reader belongs to this organization - application notifications and identity-flow mail (account verification, password recovery) alike - is delivered through this server rather than through the provider’s shared relay, so the message leaves from the organization’s own domain. At most one live configuration exists per organization. The SMTP password is encrypted at rest and is never returned; reads always carry the redaction sentinel instead.

This is a WIRE contract only. It is not backed by a table of its own: the configuration is stored on the same environment/connection/credential chain that bring-your-own identity providers already uses - a well-known per-organization Environment, joined through environments_connections_mappings to a Connection whose credential_id points at a Credential. The organization relationship lives on environments.organization_id, the dial target on connections.url and connections.metadata, the transport verdict on connections.status, and the password alone in credentials.secret.

No property here carries a construct-specific db tag, because no property here names a column of its own. The exception is deliberate and inherited: createdAt and updatedAt $ref the shared core definitions, which declare db: created_at / db: updated_at for every construct that uses them, and those two tags are accurate for the underlying connection row.

FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
organizationIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. The server additionally restricts this to a submission-port allowlist; a syntactically valid port outside it is refused.
encryptionstringYesTransport encryption to negotiate. starttls upgrades a cleartext connection (typically port 587), tls opens an implicit TLS connection (typically port 465), and none sends in cleartext and is intended only for an internal relay on a trusted network.
authMechanismstringYesSMTP authentication mechanism. none is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
usernamestringNoUsername presented to the organization’s SMTP server. Held beside the host rather than with the password because it is an identifier rather than a secret, and the health surface must show it without a decryption round trip. It is usually an email address, so it is returned only on an authorized read.
passwordstringNoPresent only when a password is stored, and then always the redaction sentinel *** - never the stored value, which is encrypted at rest and is never projected into a response. Its presence is therefore the only thing it reports: a configuration whose authMechanism is none stores no password and omits this property entirely. It is optional rather than required for exactly that reason. Read-only, and read-only here means read-only: no request body references this schema. The write semantics belong to the payload schemas - OrganizationSmtpConfigurationPayload on create and OrganizationSmtpCredentialPayload on rotation - and are documented there.
fromAddressstring (email)YesAddress the organization’s mail is sent from. Its domain must be verified before mail is routed through this server.
fromDisplayNamestringNoDisplay name shown alongside the from address in the message header.
replyToAddressstring (email)NoAddress replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider’s own so the message stays aligned for SPF and DMARC.
statusstringYes

Lifecycle and transport verdict, carrying the connection status vocabulary because the configuration IS a connection. registered means configured but never proven - the from domain is unverified, or no message has yet been delivered - and mail takes the provider relay. connected means the last delivery attempt succeeded and mail is routed through this server. disconnected means the most recent delivery attempt did not succeed, and fallbackToProvider governs what becomes of that message. It is a verdict on the last attempt alone: a SINGLE failure records it, there is no failure threshold, and the status does not by itself stop the server being dialled for the next message. Read it as “the last attempt failed”, not as “this server has been taken out of rotation” - the circuit breaker that would do the latter is planned, not built, and is tracked in meshery-cloud#6057. ignored means an administrator turned it off.

The writers are disjoint on purpose: only an administrator writes ignored, and only a delivery outcome writes connected or disconnected. That is what keeps a deliberate opt-out distinguishable from a failing relay. It also makes “enabled while the from domain is unverified” unrepresentable rather than merely forbidden, which is why this property replaces the separate enabled and verificationState pair it supersedes.

fallbackToProviderbooleanYesWhether a message that this server fails to accept is re-sent through the provider’s shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
fromDomainstringNoRegistrable domain of the from address, held separately as the unit that ownership is proven for.
fromDomainVerificationTokenstringNoToken the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access.
fromDomainVerifiedAtstring | null (date-time)NoTimestamp at which control of the from domain was last proven. Null while unproven.
lastSuccessAtstring | null (date-time)NoTimestamp of the last message this server accepted.
lastFailureAtstring | null (date-time)NoTimestamp of the last delivery attempt this server rejected or failed to accept.
lastFailureReasonstringNoClassification of the last failure. Always a classification, never the remote server’s own message: the set is closed on purpose, because reporting a remote server’s text back to a caller would turn a refusal into an oracle for what the network can reach.
consecutiveFailuresintegerYesCount of delivery attempts that have failed since the last success, reset to zero by a success. It is a RECORD and nothing more: no threshold reads it, and reaching any particular value does not itself stop a persistently unreachable server being dialled. A consumer must not treat a non-zero count as protection already in place. The circuit breaker that would consume this count - and which needs a threshold, a reset policy, and a decision about its interaction with fallbackToProvider, where an open circuit with fallback off drops account-verification and password-recovery mail - is planned under meshery-cloud#6057.
createdBystring | null (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
createdAtstring (date-time)YesTimestamp when the configuration was created.
updatedAtstring (date-time)YesTimestamp when the configuration was last changed.
deletedAtstring | null (date-time)NoTimestamp when the configuration was soft deleted. Null while it remains active.

Example response

{
  "authMechanism": "plain",
  "consecutiveFailures": 0,
  "createdAt": "0001-01-01T00:00:00Z",
  "createdBy": "00000000-0000-0000-0000-000000000000",
  "deletedAt": null,
  "encryption": "starttls",
  "fallbackToProvider": true,
  "fromAddress": "[email protected]",
  "fromDisplayName": "Example Corp",
  "fromDomain": "example.com",
  "fromDomainVerificationToken": "0f6a5d2c9b1e4a7f8c3d6b0e2a4f7c19",
  "fromDomainVerifiedAt": null,
  "host": "smtp.example.com",
  "id": "00000000-0000-0000-0000-000000000000",
  "lastFailureAt": null,
  "lastSuccessAt": null,
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "password": "***",
  "port": 587,
  "replyToAddress": "[email protected]",
  "status": "registered",
  "updatedAt": "0001-01-01T00:00:00Z",
  "username": "[email protected]"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

409
The configuration already exists, or the requested state transition is refused in the configuration’s current state

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp PUT

/api/orgs/{orgId}/environments/mail-relay/connection

Update an organization's SMTP settings

Replaces the settings. The payload has no password property at all and rejects unknown properties, so this operation cannot carry a credential even by accident - rotating the password is a separate operation. That is what lets an administrator rename a display name without retyping a secret, while the redaction sentinel stays refused everywhere it can be written. Changing the from address to a different registrable domain resets from-domain verification and returns the configuration to registered.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/connection

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
Client-settable settings of an organization’s mail server, WITHOUT the password. The omission is deliberate and structural: because this schema forbids unknown properties, a client cannot send a credential through this operation at all, so the read-then-write round trip that would otherwise overwrite a stored password with the redaction sentinel is not expressible. Rotate the password through its own operation.
FieldTypeRequiredDescription
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. Restricted further by a submission-port allowlist.
encryptionstringNoTransport encryption to negotiate.
authMechanismstringNoSMTP authentication mechanism. Changing this to a mechanism other than none while no password is stored is refused; rotate the credential first.
usernamestringNoUsername presented to the organization’s SMTP server.
fromAddressstring (email)YesAddress the organization’s mail is sent from. Changing it to a different registrable domain resets from-domain verification.
fromDisplayNamestringNoDisplay name shown alongside the from address.
replyToAddressstring (email)NoAddress replies are directed to.
fallbackToProviderbooleanNoWhether a message this server fails to accept is re-sent through the provider’s shared relay.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The stored SMTP configuration.

application/json

An organization’s own outbound mail server. When present and healthy, every transactional email whose reader belongs to this organization - application notifications and identity-flow mail (account verification, password recovery) alike - is delivered through this server rather than through the provider’s shared relay, so the message leaves from the organization’s own domain. At most one live configuration exists per organization. The SMTP password is encrypted at rest and is never returned; reads always carry the redaction sentinel instead.

This is a WIRE contract only. It is not backed by a table of its own: the configuration is stored on the same environment/connection/credential chain that bring-your-own identity providers already uses - a well-known per-organization Environment, joined through environments_connections_mappings to a Connection whose credential_id points at a Credential. The organization relationship lives on environments.organization_id, the dial target on connections.url and connections.metadata, the transport verdict on connections.status, and the password alone in credentials.secret.

No property here carries a construct-specific db tag, because no property here names a column of its own. The exception is deliberate and inherited: createdAt and updatedAt $ref the shared core definitions, which declare db: created_at / db: updated_at for every construct that uses them, and those two tags are accurate for the underlying connection row.

FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
organizationIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. The server additionally restricts this to a submission-port allowlist; a syntactically valid port outside it is refused.
encryptionstringYesTransport encryption to negotiate. starttls upgrades a cleartext connection (typically port 587), tls opens an implicit TLS connection (typically port 465), and none sends in cleartext and is intended only for an internal relay on a trusted network.
authMechanismstringYesSMTP authentication mechanism. none is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
usernamestringNoUsername presented to the organization’s SMTP server. Held beside the host rather than with the password because it is an identifier rather than a secret, and the health surface must show it without a decryption round trip. It is usually an email address, so it is returned only on an authorized read.
passwordstringNoPresent only when a password is stored, and then always the redaction sentinel *** - never the stored value, which is encrypted at rest and is never projected into a response. Its presence is therefore the only thing it reports: a configuration whose authMechanism is none stores no password and omits this property entirely. It is optional rather than required for exactly that reason. Read-only, and read-only here means read-only: no request body references this schema. The write semantics belong to the payload schemas - OrganizationSmtpConfigurationPayload on create and OrganizationSmtpCredentialPayload on rotation - and are documented there.
fromAddressstring (email)YesAddress the organization’s mail is sent from. Its domain must be verified before mail is routed through this server.
fromDisplayNamestringNoDisplay name shown alongside the from address in the message header.
replyToAddressstring (email)NoAddress replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider’s own so the message stays aligned for SPF and DMARC.
statusstringYes

Lifecycle and transport verdict, carrying the connection status vocabulary because the configuration IS a connection. registered means configured but never proven - the from domain is unverified, or no message has yet been delivered - and mail takes the provider relay. connected means the last delivery attempt succeeded and mail is routed through this server. disconnected means the most recent delivery attempt did not succeed, and fallbackToProvider governs what becomes of that message. It is a verdict on the last attempt alone: a SINGLE failure records it, there is no failure threshold, and the status does not by itself stop the server being dialled for the next message. Read it as “the last attempt failed”, not as “this server has been taken out of rotation” - the circuit breaker that would do the latter is planned, not built, and is tracked in meshery-cloud#6057. ignored means an administrator turned it off.

The writers are disjoint on purpose: only an administrator writes ignored, and only a delivery outcome writes connected or disconnected. That is what keeps a deliberate opt-out distinguishable from a failing relay. It also makes “enabled while the from domain is unverified” unrepresentable rather than merely forbidden, which is why this property replaces the separate enabled and verificationState pair it supersedes.

fallbackToProviderbooleanYesWhether a message that this server fails to accept is re-sent through the provider’s shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
fromDomainstringNoRegistrable domain of the from address, held separately as the unit that ownership is proven for.
fromDomainVerificationTokenstringNoToken the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access.
fromDomainVerifiedAtstring | null (date-time)NoTimestamp at which control of the from domain was last proven. Null while unproven.
lastSuccessAtstring | null (date-time)NoTimestamp of the last message this server accepted.
lastFailureAtstring | null (date-time)NoTimestamp of the last delivery attempt this server rejected or failed to accept.
lastFailureReasonstringNoClassification of the last failure. Always a classification, never the remote server’s own message: the set is closed on purpose, because reporting a remote server’s text back to a caller would turn a refusal into an oracle for what the network can reach.
consecutiveFailuresintegerYesCount of delivery attempts that have failed since the last success, reset to zero by a success. It is a RECORD and nothing more: no threshold reads it, and reaching any particular value does not itself stop a persistently unreachable server being dialled. A consumer must not treat a non-zero count as protection already in place. The circuit breaker that would consume this count - and which needs a threshold, a reset policy, and a decision about its interaction with fallbackToProvider, where an open circuit with fallback off drops account-verification and password-recovery mail - is planned under meshery-cloud#6057.
createdBystring | null (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
createdAtstring (date-time)YesTimestamp when the configuration was created.
updatedAtstring (date-time)YesTimestamp when the configuration was last changed.
deletedAtstring | null (date-time)NoTimestamp when the configuration was soft deleted. Null while it remains active.

Example response

{
  "authMechanism": "plain",
  "consecutiveFailures": 0,
  "createdAt": "0001-01-01T00:00:00Z",
  "createdBy": "00000000-0000-0000-0000-000000000000",
  "deletedAt": null,
  "encryption": "starttls",
  "fallbackToProvider": true,
  "fromAddress": "[email protected]",
  "fromDisplayName": "Example Corp",
  "fromDomain": "example.com",
  "fromDomainVerificationToken": "0f6a5d2c9b1e4a7f8c3d6b0e2a4f7c19",
  "fromDomainVerifiedAt": null,
  "host": "smtp.example.com",
  "id": "00000000-0000-0000-0000-000000000000",
  "lastFailureAt": null,
  "lastSuccessAt": null,
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "password": "***",
  "port": 587,
  "replyToAddress": "[email protected]",
  "status": "registered",
  "updatedAt": "0001-01-01T00:00:00Z",
  "username": "[email protected]"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp PUT

/api/orgs/{orgId}/environments/mail-relay/connection/credential

Rotate the password presented to an organization's SMTP server

Replaces the stored password. The redaction sentinel *** and the empty string are REFUSED with a 400 rather than treated as “leave it alone”, so a client that echoes a read back cannot overwrite the credential with the sentinel.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection/credential

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection/credential

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/connection/credential

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
The password presented to an organization’s SMTP server. The only payload that carries it after creation.
FieldTypeRequiredDescription
passwordstringYesNew password. The redaction sentinel *** and the empty string are refused with a 400 rather than treated as “leave the stored value alone”, so echoing a read back cannot erase the credential.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The stored SMTP configuration, with the password redacted.

application/json

An organization’s own outbound mail server. When present and healthy, every transactional email whose reader belongs to this organization - application notifications and identity-flow mail (account verification, password recovery) alike - is delivered through this server rather than through the provider’s shared relay, so the message leaves from the organization’s own domain. At most one live configuration exists per organization. The SMTP password is encrypted at rest and is never returned; reads always carry the redaction sentinel instead.

This is a WIRE contract only. It is not backed by a table of its own: the configuration is stored on the same environment/connection/credential chain that bring-your-own identity providers already uses - a well-known per-organization Environment, joined through environments_connections_mappings to a Connection whose credential_id points at a Credential. The organization relationship lives on environments.organization_id, the dial target on connections.url and connections.metadata, the transport verdict on connections.status, and the password alone in credentials.secret.

No property here carries a construct-specific db tag, because no property here names a column of its own. The exception is deliberate and inherited: createdAt and updatedAt $ref the shared core definitions, which declare db: created_at / db: updated_at for every construct that uses them, and those two tags are accurate for the underlying connection row.

FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
organizationIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. The server additionally restricts this to a submission-port allowlist; a syntactically valid port outside it is refused.
encryptionstringYesTransport encryption to negotiate. starttls upgrades a cleartext connection (typically port 587), tls opens an implicit TLS connection (typically port 465), and none sends in cleartext and is intended only for an internal relay on a trusted network.
authMechanismstringYesSMTP authentication mechanism. none is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
usernamestringNoUsername presented to the organization’s SMTP server. Held beside the host rather than with the password because it is an identifier rather than a secret, and the health surface must show it without a decryption round trip. It is usually an email address, so it is returned only on an authorized read.
passwordstringNoPresent only when a password is stored, and then always the redaction sentinel *** - never the stored value, which is encrypted at rest and is never projected into a response. Its presence is therefore the only thing it reports: a configuration whose authMechanism is none stores no password and omits this property entirely. It is optional rather than required for exactly that reason. Read-only, and read-only here means read-only: no request body references this schema. The write semantics belong to the payload schemas - OrganizationSmtpConfigurationPayload on create and OrganizationSmtpCredentialPayload on rotation - and are documented there.
fromAddressstring (email)YesAddress the organization’s mail is sent from. Its domain must be verified before mail is routed through this server.
fromDisplayNamestringNoDisplay name shown alongside the from address in the message header.
replyToAddressstring (email)NoAddress replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider’s own so the message stays aligned for SPF and DMARC.
statusstringYes

Lifecycle and transport verdict, carrying the connection status vocabulary because the configuration IS a connection. registered means configured but never proven - the from domain is unverified, or no message has yet been delivered - and mail takes the provider relay. connected means the last delivery attempt succeeded and mail is routed through this server. disconnected means the most recent delivery attempt did not succeed, and fallbackToProvider governs what becomes of that message. It is a verdict on the last attempt alone: a SINGLE failure records it, there is no failure threshold, and the status does not by itself stop the server being dialled for the next message. Read it as “the last attempt failed”, not as “this server has been taken out of rotation” - the circuit breaker that would do the latter is planned, not built, and is tracked in meshery-cloud#6057. ignored means an administrator turned it off.

The writers are disjoint on purpose: only an administrator writes ignored, and only a delivery outcome writes connected or disconnected. That is what keeps a deliberate opt-out distinguishable from a failing relay. It also makes “enabled while the from domain is unverified” unrepresentable rather than merely forbidden, which is why this property replaces the separate enabled and verificationState pair it supersedes.

fallbackToProviderbooleanYesWhether a message that this server fails to accept is re-sent through the provider’s shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
fromDomainstringNoRegistrable domain of the from address, held separately as the unit that ownership is proven for.
fromDomainVerificationTokenstringNoToken the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access.
fromDomainVerifiedAtstring | null (date-time)NoTimestamp at which control of the from domain was last proven. Null while unproven.
lastSuccessAtstring | null (date-time)NoTimestamp of the last message this server accepted.
lastFailureAtstring | null (date-time)NoTimestamp of the last delivery attempt this server rejected or failed to accept.
lastFailureReasonstringNoClassification of the last failure. Always a classification, never the remote server’s own message: the set is closed on purpose, because reporting a remote server’s text back to a caller would turn a refusal into an oracle for what the network can reach.
consecutiveFailuresintegerYesCount of delivery attempts that have failed since the last success, reset to zero by a success. It is a RECORD and nothing more: no threshold reads it, and reaching any particular value does not itself stop a persistently unreachable server being dialled. A consumer must not treat a non-zero count as protection already in place. The circuit breaker that would consume this count - and which needs a threshold, a reset policy, and a decision about its interaction with fallbackToProvider, where an open circuit with fallback off drops account-verification and password-recovery mail - is planned under meshery-cloud#6057.
createdBystring | null (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
createdAtstring (date-time)YesTimestamp when the configuration was created.
updatedAtstring (date-time)YesTimestamp when the configuration was last changed.
deletedAtstring | null (date-time)NoTimestamp when the configuration was soft deleted. Null while it remains active.

Example response

{
  "authMechanism": "plain",
  "consecutiveFailures": 0,
  "createdAt": "0001-01-01T00:00:00Z",
  "createdBy": "00000000-0000-0000-0000-000000000000",
  "deletedAt": null,
  "encryption": "starttls",
  "fallbackToProvider": true,
  "fromAddress": "[email protected]",
  "fromDisplayName": "Example Corp",
  "fromDomain": "example.com",
  "fromDomainVerificationToken": "0f6a5d2c9b1e4a7f8c3d6b0e2a4f7c19",
  "fromDomainVerifiedAt": null,
  "host": "smtp.example.com",
  "id": "00000000-0000-0000-0000-000000000000",
  "lastFailureAt": null,
  "lastSuccessAt": null,
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "password": "***",
  "port": 587,
  "replyToAddress": "[email protected]",
  "status": "registered",
  "updatedAt": "0001-01-01T00:00:00Z",
  "username": "[email protected]"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp POST

/api/orgs/{orgId}/environments/mail-relay/connection/enablement

Turn an organization's own mail server on or off

The only operation by which an administrator writes the configuration’s status, and it can write only the two administrative states: turning it off moves the configuration to ignored, and turning it on returns it to registered so that it must prove itself again before mail is routed. connected and disconnected are written by delivery outcomes alone and are never settable here, which is what keeps a deliberate opt-out distinguishable from a failing relay. Turning it on is refused with a 409 while the from domain is unverified.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection/enablement

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection/enablement

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/connection/enablement

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Required
Administrative on/off for an organization’s own mail server. It cannot express the delivery-driven states, which are written by outcomes alone.
FieldTypeRequiredDescription
enabledbooleanYesTrue returns the configuration to registered so it may prove itself and carry mail; false moves it to ignored. Turning it on is refused while the from domain is unverified.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The stored SMTP configuration.

application/json

An organization’s own outbound mail server. When present and healthy, every transactional email whose reader belongs to this organization - application notifications and identity-flow mail (account verification, password recovery) alike - is delivered through this server rather than through the provider’s shared relay, so the message leaves from the organization’s own domain. At most one live configuration exists per organization. The SMTP password is encrypted at rest and is never returned; reads always carry the redaction sentinel instead.

This is a WIRE contract only. It is not backed by a table of its own: the configuration is stored on the same environment/connection/credential chain that bring-your-own identity providers already uses - a well-known per-organization Environment, joined through environments_connections_mappings to a Connection whose credential_id points at a Credential. The organization relationship lives on environments.organization_id, the dial target on connections.url and connections.metadata, the transport verdict on connections.status, and the password alone in credentials.secret.

No property here carries a construct-specific db tag, because no property here names a column of its own. The exception is deliberate and inherited: createdAt and updatedAt $ref the shared core definitions, which declare db: created_at / db: updated_at for every construct that uses them, and those two tags are accurate for the underlying connection row.

FieldTypeRequiredDescription
idstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
organizationIdstring (uuid)YesA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
hoststringYesHostname of the organization’s SMTP server.
portintegerYesTCP port the organization’s SMTP server listens on. The server additionally restricts this to a submission-port allowlist; a syntactically valid port outside it is refused.
encryptionstringYesTransport encryption to negotiate. starttls upgrades a cleartext connection (typically port 587), tls opens an implicit TLS connection (typically port 465), and none sends in cleartext and is intended only for an internal relay on a trusted network.
authMechanismstringYesSMTP authentication mechanism. none is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
usernamestringNoUsername presented to the organization’s SMTP server. Held beside the host rather than with the password because it is an identifier rather than a secret, and the health surface must show it without a decryption round trip. It is usually an email address, so it is returned only on an authorized read.
passwordstringNoPresent only when a password is stored, and then always the redaction sentinel *** - never the stored value, which is encrypted at rest and is never projected into a response. Its presence is therefore the only thing it reports: a configuration whose authMechanism is none stores no password and omits this property entirely. It is optional rather than required for exactly that reason. Read-only, and read-only here means read-only: no request body references this schema. The write semantics belong to the payload schemas - OrganizationSmtpConfigurationPayload on create and OrganizationSmtpCredentialPayload on rotation - and are documented there.
fromAddressstring (email)YesAddress the organization’s mail is sent from. Its domain must be verified before mail is routed through this server.
fromDisplayNamestringNoDisplay name shown alongside the from address in the message header.
replyToAddressstring (email)NoAddress replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider’s own so the message stays aligned for SPF and DMARC.
statusstringYes

Lifecycle and transport verdict, carrying the connection status vocabulary because the configuration IS a connection. registered means configured but never proven - the from domain is unverified, or no message has yet been delivered - and mail takes the provider relay. connected means the last delivery attempt succeeded and mail is routed through this server. disconnected means the most recent delivery attempt did not succeed, and fallbackToProvider governs what becomes of that message. It is a verdict on the last attempt alone: a SINGLE failure records it, there is no failure threshold, and the status does not by itself stop the server being dialled for the next message. Read it as “the last attempt failed”, not as “this server has been taken out of rotation” - the circuit breaker that would do the latter is planned, not built, and is tracked in meshery-cloud#6057. ignored means an administrator turned it off.

The writers are disjoint on purpose: only an administrator writes ignored, and only a delivery outcome writes connected or disconnected. That is what keeps a deliberate opt-out distinguishable from a failing relay. It also makes “enabled while the from domain is unverified” unrepresentable rather than merely forbidden, which is why this property replaces the separate enabled and verificationState pair it supersedes.

fallbackToProviderbooleanYesWhether a message that this server fails to accept is re-sent through the provider’s shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
fromDomainstringNoRegistrable domain of the from address, held separately as the unit that ownership is proven for.
fromDomainVerificationTokenstringNoToken the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access.
fromDomainVerifiedAtstring | null (date-time)NoTimestamp at which control of the from domain was last proven. Null while unproven.
lastSuccessAtstring | null (date-time)NoTimestamp of the last message this server accepted.
lastFailureAtstring | null (date-time)NoTimestamp of the last delivery attempt this server rejected or failed to accept.
lastFailureReasonstringNoClassification of the last failure. Always a classification, never the remote server’s own message: the set is closed on purpose, because reporting a remote server’s text back to a caller would turn a refusal into an oracle for what the network can reach.
consecutiveFailuresintegerYesCount of delivery attempts that have failed since the last success, reset to zero by a success. It is a RECORD and nothing more: no threshold reads it, and reaching any particular value does not itself stop a persistently unreachable server being dialled. A consumer must not treat a non-zero count as protection already in place. The circuit breaker that would consume this count - and which needs a threshold, a reset policy, and a decision about its interaction with fallbackToProvider, where an open circuit with fallback off drops account-verification and password-recovery mail - is planned under meshery-cloud#6057.
createdBystring | null (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
createdAtstring (date-time)YesTimestamp when the configuration was created.
updatedAtstring (date-time)YesTimestamp when the configuration was last changed.
deletedAtstring | null (date-time)NoTimestamp when the configuration was soft deleted. Null while it remains active.

Example response

{
  "authMechanism": "plain",
  "consecutiveFailures": 0,
  "createdAt": "0001-01-01T00:00:00Z",
  "createdBy": "00000000-0000-0000-0000-000000000000",
  "deletedAt": null,
  "encryption": "starttls",
  "fallbackToProvider": true,
  "fromAddress": "[email protected]",
  "fromDisplayName": "Example Corp",
  "fromDomain": "example.com",
  "fromDomainVerificationToken": "0f6a5d2c9b1e4a7f8c3d6b0e2a4f7c19",
  "fromDomainVerifiedAt": null,
  "host": "smtp.example.com",
  "id": "00000000-0000-0000-0000-000000000000",
  "lastFailureAt": null,
  "lastSuccessAt": null,
  "organizationId": "00000000-0000-0000-0000-000000000000",
  "password": "***",
  "port": 587,
  "replyToAddress": "[email protected]",
  "status": "registered",
  "updatedAt": "0001-01-01T00:00:00Z",
  "username": "[email protected]"
}
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

409
The configuration already exists, or the requested state transition is refused in the configuration’s current state

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp POST

/api/orgs/{orgId}/environments/mail-relay/connection/test

Send a test message through an organization's SMTP configuration

Delivers a real message through the configured server and reports a classified outcome. A real delivery rather than a connection probe on purpose: a server that connects and authenticates but refuses the sender or the recipient is the most common misconfiguration, and a probe reports it healthy. A successful test is also what promotes a verified configuration from registered to connected, so this operation is part of the lifecycle rather than a convenience. It takes the same permission as a write, because there is no read-only form of dialling an arbitrary host, and it is rate limited per organization. The recipient defaults to the calling administrator’s own address. The outcome is a classification, never the remote server’s own text.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection/test

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/connection/test

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/connection/test

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Request body

application/json Optional
Options for a test delivery.
FieldTypeRequiredDescription
tostring (email)NoRecipient of the test message. Defaults to the calling administrator’s own address.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The classified outcome of the delivery attempt.

application/json

Classified outcome of a test delivery. Carries no text from the remote server, so a refusal reveals nothing about what the network can reach.
FieldTypeRequiredDescription
outcomestringYesWhat happened. delivered means the server accepted the message; every other value names the stage that refused it.
messagestringNoHuman-readable summary of the outcome, drawn from a fixed set of phrasings.
sentTostring (email)NoAddress the test message was addressed to.
testedAtstring (date-time)YesWhen the delivery was attempted.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

429
Too many attempts for this organization

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp GET

/api/orgs/{orgId}/environments/mail-relay/domain-verification

Get the from-domain verification challenge

Returns the DNS record the organization must publish to prove control of its from domain, together with the current verification state. A from domain that matches the organization’s own registered custom domain is already proven and needs no record.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/domain-verification

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/domain-verification

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/domain-verification

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The verification challenge and its current state.

application/json

The DNS record proving control of an organization’s from domain, and the current state of that proof.
FieldTypeRequiredDescription
domainstringYesRegistrable domain the proof applies to.
methodstringYesHow the domain is proven. custom-domain means it matches the organization’s own registered custom domain and needs no record; dns-txt means the record below must be published.
recordNamestringNoFully qualified name of the TXT record to publish.
recordValuestringNoValue the TXT record must carry.
verifiedbooleanYesWhether control of the domain is currently proven.
verifiedAtstring | null (date-time)NoWhen control was last proven. Null while unproven.
failureReasonstringNoWhy the last check did not prove control.
401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Organization SMTP Configuration OrganizationSmtp POST

/api/orgs/{orgId}/environments/mail-relay/domain-verification

Check the from-domain verification challenge

Resolves the challenge record and records the result. Proving the domain is what permits mail to be routed through the organization’s server. Rate limited per organization.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/domain-verification

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/orgs/{orgId}/environments/mail-relay/domain-verification

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/orgs/{orgId}/environments/mail-relay/domain-verification

Parameters

Path parameters

NameTypeRequiredDescription
orgIdstring (uuid)YesOrganization ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
The outcome of the verification check.

application/json

The DNS record proving control of an organization’s from domain, and the current state of that proof.
FieldTypeRequiredDescription
domainstringYesRegistrable domain the proof applies to.
methodstringYesHow the domain is proven. custom-domain means it matches the organization’s own registered custom domain and needs no record; dns-txt means the record below must be published.
recordNamestringNoFully qualified name of the TXT record to publish.
recordValuestringNoValue the TXT record must carry.
verifiedbooleanYesWhether control of the domain is currently proven.
verifiedAtstring | null (date-time)NoWhen control was last proven. Null while unproven.
failureReasonstringNoWhy the last check did not prove control.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

403
Caller lacks the permission key required for this organization

text/plain

404
Result not found

text/plain

429
Too many attempts for this organization

text/plain

500
Internal server error

text/plain

Design POST

/api/pattern/import

Import Design

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/pattern/import

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/pattern/import

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/pattern/import

Request body

application/json Required
Body for POST /api/pattern/import. Consumed by the server as application/json. Exactly one of two variants must be supplied: a File Import carrying base64-encoded bytes plus a file name, or a URL Import naming a remote location the server will fetch. Sending both variants at once, or neither, is rejected with 400.

File Import

Upload a design file from the local system. Both file and fileName are required; the server uses the file name to identify the file type (Kubernetes Manifest, Helm Chart, Docker Compose, or Meshery Design).
FieldTypeRequiredDescription
filestring (byte)YesBase64-encoded file bytes. Supported formats: Kubernetes Manifests, Helm Charts, Docker Compose, and Meshery Designs. See Import Designs Documentation for details.
fileNamestringYesThe name of the pattern file being imported. Include the extension (e.g. design.yaml), as the server uses it to identify the file type.
namestringNoProvide a name for your design. This name will help you identify the design later. You can also change the name of your design after importing it.

URL Import

Import a design by URL. The server will fetch the resource and derive the file type from the response.
FieldTypeRequiredDescription
namestringNoProvide a name for your design. This name will help you identify the design later. You can also change the name of your design after importing it.
urlstring (uri)YesA direct URL to a single file, for example: https://raw.github.com/your-design-file.yaml. Ensure the resource is in a supported format: Kubernetes Manifest, Helm Chart, Docker Compose, or Meshery Design. See Import Designs Documentation for details.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Successful import. The response body is a JSON array of the saved designs, not a message envelope. The import path saves exactly one design, so the array carries a single element and consumers read the imported design as the first element.

application/json

Designs persisted by the import, in the order they were saved. Always a single element on this path.
FieldTypeRequiredDescription
catalogDataobjectNoCatalog metadata attached to the design when published.
cloneCountintegerNoServer-aggregated count of times this design has been cloned from the catalog. Server-managed and ignored on writes.
createdAtstring (date-time)NoTimestamp of design creation.
deploymentCountintegerNoServer-aggregated count of deployments originated from this design. Server-managed and ignored on writes.
designTypestring | nullNoDiscriminator identifying the source format of the design body, persisted in the meshery_patterns table’s source_type column (nullable; null for legacy rows imported before the column was introduced). For catalog listings the server may also project this field from the attached catalog metadata. Use this field to branch rendering between native Meshery designs and imported Helm charts, Kubernetes manifests, and Docker Compose files.
downloadCountintegerNoServer-aggregated count of downloads of this design from the catalog. Server-managed and ignored on writes.
idstring (uuid)NoServer-generated design ID.
locationobjectNoOptional structured location metadata (branch, host, path, …).
namestringNoHuman-readable design name.
patternFilestringNoRaw design body as it is persisted in the meshery_patterns table’s pattern_file column. The wire form is the YAML/JSON string the server stores verbatim; consumers that need the structured form transcode at the boundary by parsing the string into a PatternFile (see #/components/schemas/PatternFile) and marshalling it back when they write. Keeping the wire shape as a string mirrors the column’s actual representation and avoids forcing every consumer through the structured-vs- string union that the previous *PatternFile typing implied.
shareCountintegerNoServer-aggregated count of share events for this design. Server-managed and ignored on writes.
sourceContentstring | null (byte)NoRaw bytes of the imported source artifact (Helm chart tarball, Kubernetes manifest, Docker Compose file, etc.) preserved in the meshery_patterns table’s source_content column for non-Meshery-Design imports. Empty / null for native Meshery designs. Server-managed: populated by the import and upload handlers and scrubbed to null on most read responses, so clients should treat this as opaque base64-encoded bytes when it does appear on the wire.
updatedAtstring (date-time)NoTimestamp of last design modification.
userobject | nullNoOwning user record, joined inline by the catalog list/get handlers when shaping responses. Server-projected from the users table via the design’s userId; not a column on the meshery_patterns table itself, so the generated Go field is tagged db:"-" to keep it out of ORM column scans.
userIdstring (uuid)NoOwning user ID.
viewCountintegerNoServer-aggregated count of views on this design in the catalog. Present on list/catalog responses; server-managed and ignored on writes.
visibilitystringNoVisibility scope of the design — controls whether non-owners may read or list it. private is owner-only, public is readable by anyone in the org, and published is visible in the catalog.
400
Invalid request format
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error
Performance GET

/api/performance/profiles

List performance profiles

Returns the performance profiles owned by the authenticated user, with pagination, search, and ordering.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizestringNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance profiles

application/json

Paginated list of performance profiles.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
profilesarray of objectYesPerformance profiles in this page.
totalCountintegerYesTotal number of performance profiles across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Performance POST

/api/performance/profiles

Create or update a performance profile

Creates a new performance profile when the body omits id, or updates the matching existing profile when an id is provided.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles

Request body

application/json Required
Body for creating or updating a performance profile.
Payload for creating or updating a performance profile. Includes only client-settable fields; server-generated fields (id on create, createdAt, updatedAt, lastRun, totalResults) are populated by the server.
FieldTypeRequiredDescription
concurrentRequestintegerNoNumber of concurrent requests issued by the load generator.
contentTypestringNoContent-Type header value applied to each load-test request body (e.g. “application/json”).
durationstringYesDuration of the load test, expressed as a Go duration string (e.g. “30s”, “5m”, “1h”).
endpointsarray of stringYesEndpoints (URLs) targeted by the performance profile’s load test.
idstring (uuid)NoExisting performance-profile ID for updates; omit on create.
loadGeneratorsarray of stringYesLoad generators (e.g. fortio, wrk2, nighthawk) to drive the profile’s load test.
metadataobjectNoFree-form metadata associated with the performance profile.
namestringYesHuman-readable name of the performance profile.
ownerstring (uuid)NoOwner user ID. When omitted, the server infers it from the authenticated user.
qpsintegerNoTarget queries-per-second rate for the load generator. Zero indicates the generator runs unthrottled.
requestBodystringNoHTTP request body sent on each load-test request.
requestCookiesstringNoHTTP request cookies, serialized as JSON, sent on each load-test request.
requestHeadersstringNoHTTP request headers, serialized as JSON, sent on each load-test request.
schedulestring | null (uuid)NoOptional schedule ID associating the profile with a recurring run.
serviceMeshstringNoService mesh under test for the profile (e.g. istio, linkerd, consul). Empty string when the profile is mesh-agnostic.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance profile upserted

application/json

A performance profile captures the configuration for a load test run by Meshery against one or more service-mesh endpoints. Profiles are owned by a user and can optionally be associated with a recurring schedule. Learn more at https://docs.meshery.io/tasks/performance-management
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the performance profile.
namestringYesHuman-readable name of the performance profile.
ownerstring (uuid)YesUser ID of the profile owner.
schedulestring | null (uuid)NoOptional schedule ID associated with this performance profile. Null when the profile is not bound to a recurring schedule.
loadGeneratorsarray of stringNoLoad generators (e.g. fortio, wrk2, nighthawk) to drive the profile’s load test.
endpointsarray of stringNoEndpoints (URLs) targeted by the performance profile’s load test.
serviceMeshstringNoService mesh under test for the profile (e.g. istio, linkerd, consul). Empty string when the profile is mesh-agnostic.
concurrentRequestintegerNoNumber of concurrent requests issued by the load generator.
qpsintegerNoTarget queries-per-second rate for the load generator. Zero indicates the generator runs unthrottled.
durationstringNoDuration of the load test, expressed as a Go duration string (e.g. “30s”, “5m”, “1h”).
requestHeadersstringNoHTTP request headers, serialized as JSON, sent on each load-test request. Empty string when no headers are configured.
requestCookiesstringNoHTTP request cookies, serialized as JSON, sent on each load-test request. Empty string when no cookies are configured.
requestBodystringNoHTTP request body sent on each load-test request. Empty string when no body is configured.
contentTypestringNoContent-Type header value applied to each load-test request body (e.g. “application/json”). Empty string when no body is configured.
metadataobjectNoFree-form metadata associated with the performance profile.
lastRunstring | null (date-time)NoServer-computed timestamp of the most recent load-test run that used this profile. Null until the first run completes. Server-managed; clients must not set this on create/update.
totalResultsintegerNoServer-computed count of load-test results recorded for this profile. Server-managed; clients must not set this on create/update.
createdAtstring (date-time)YesTimestamp when the performance profile was created.
updatedAtstring (date-time)YesTimestamp when the performance profile was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Performance GET

/api/performance/profiles/{performanceProfileId}

Get a performance profile by ID

Returns a single performance profile owned by (or visible to) the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles/{performanceProfileId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles/{performanceProfileId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles/{performanceProfileId}

Parameters

Path parameters

NameTypeRequiredDescription
performanceProfileIdstring (uuid)YesPerformance profile ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance profile

application/json

A performance profile captures the configuration for a load test run by Meshery against one or more service-mesh endpoints. Profiles are owned by a user and can optionally be associated with a recurring schedule. Learn more at https://docs.meshery.io/tasks/performance-management
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the performance profile.
namestringYesHuman-readable name of the performance profile.
ownerstring (uuid)YesUser ID of the profile owner.
schedulestring | null (uuid)NoOptional schedule ID associated with this performance profile. Null when the profile is not bound to a recurring schedule.
loadGeneratorsarray of stringNoLoad generators (e.g. fortio, wrk2, nighthawk) to drive the profile’s load test.
endpointsarray of stringNoEndpoints (URLs) targeted by the performance profile’s load test.
serviceMeshstringNoService mesh under test for the profile (e.g. istio, linkerd, consul). Empty string when the profile is mesh-agnostic.
concurrentRequestintegerNoNumber of concurrent requests issued by the load generator.
qpsintegerNoTarget queries-per-second rate for the load generator. Zero indicates the generator runs unthrottled.
durationstringNoDuration of the load test, expressed as a Go duration string (e.g. “30s”, “5m”, “1h”).
requestHeadersstringNoHTTP request headers, serialized as JSON, sent on each load-test request. Empty string when no headers are configured.
requestCookiesstringNoHTTP request cookies, serialized as JSON, sent on each load-test request. Empty string when no cookies are configured.
requestBodystringNoHTTP request body sent on each load-test request. Empty string when no body is configured.
contentTypestringNoContent-Type header value applied to each load-test request body (e.g. “application/json”). Empty string when no body is configured.
metadataobjectNoFree-form metadata associated with the performance profile.
lastRunstring | null (date-time)NoServer-computed timestamp of the most recent load-test run that used this profile. Null until the first run completes. Server-managed; clients must not set this on create/update.
totalResultsintegerNoServer-computed count of load-test results recorded for this profile. Server-managed; clients must not set this on create/update.
createdAtstring (date-time)YesTimestamp when the performance profile was created.
updatedAtstring (date-time)YesTimestamp when the performance profile was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Performance PUT

/api/performance/profiles/{performanceProfileId}

Update a performance profile

Updates the performance profile identified by the path parameter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles/{performanceProfileId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles/{performanceProfileId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles/{performanceProfileId}

Parameters

Path parameters

NameTypeRequiredDescription
performanceProfileIdstring (uuid)YesPerformance profile ID.

Request body

application/json Required
Body for creating or updating a performance profile.
Payload for creating or updating a performance profile. Includes only client-settable fields; server-generated fields (id on create, createdAt, updatedAt, lastRun, totalResults) are populated by the server.
FieldTypeRequiredDescription
concurrentRequestintegerNoNumber of concurrent requests issued by the load generator.
contentTypestringNoContent-Type header value applied to each load-test request body (e.g. “application/json”).
durationstringYesDuration of the load test, expressed as a Go duration string (e.g. “30s”, “5m”, “1h”).
endpointsarray of stringYesEndpoints (URLs) targeted by the performance profile’s load test.
idstring (uuid)NoExisting performance-profile ID for updates; omit on create.
loadGeneratorsarray of stringYesLoad generators (e.g. fortio, wrk2, nighthawk) to drive the profile’s load test.
metadataobjectNoFree-form metadata associated with the performance profile.
namestringYesHuman-readable name of the performance profile.
ownerstring (uuid)NoOwner user ID. When omitted, the server infers it from the authenticated user.
qpsintegerNoTarget queries-per-second rate for the load generator. Zero indicates the generator runs unthrottled.
requestBodystringNoHTTP request body sent on each load-test request.
requestCookiesstringNoHTTP request cookies, serialized as JSON, sent on each load-test request.
requestHeadersstringNoHTTP request headers, serialized as JSON, sent on each load-test request.
schedulestring | null (uuid)NoOptional schedule ID associating the profile with a recurring run.
serviceMeshstringNoService mesh under test for the profile (e.g. istio, linkerd, consul). Empty string when the profile is mesh-agnostic.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance profile

application/json

A performance profile captures the configuration for a load test run by Meshery against one or more service-mesh endpoints. Profiles are owned by a user and can optionally be associated with a recurring schedule. Learn more at https://docs.meshery.io/tasks/performance-management
FieldTypeRequiredDescription
idstring (uuid)YesUnique identifier for the performance profile.
namestringYesHuman-readable name of the performance profile.
ownerstring (uuid)YesUser ID of the profile owner.
schedulestring | null (uuid)NoOptional schedule ID associated with this performance profile. Null when the profile is not bound to a recurring schedule.
loadGeneratorsarray of stringNoLoad generators (e.g. fortio, wrk2, nighthawk) to drive the profile’s load test.
endpointsarray of stringNoEndpoints (URLs) targeted by the performance profile’s load test.
serviceMeshstringNoService mesh under test for the profile (e.g. istio, linkerd, consul). Empty string when the profile is mesh-agnostic.
concurrentRequestintegerNoNumber of concurrent requests issued by the load generator.
qpsintegerNoTarget queries-per-second rate for the load generator. Zero indicates the generator runs unthrottled.
durationstringNoDuration of the load test, expressed as a Go duration string (e.g. “30s”, “5m”, “1h”).
requestHeadersstringNoHTTP request headers, serialized as JSON, sent on each load-test request. Empty string when no headers are configured.
requestCookiesstringNoHTTP request cookies, serialized as JSON, sent on each load-test request. Empty string when no cookies are configured.
requestBodystringNoHTTP request body sent on each load-test request. Empty string when no body is configured.
contentTypestringNoContent-Type header value applied to each load-test request body (e.g. “application/json”). Empty string when no body is configured.
metadataobjectNoFree-form metadata associated with the performance profile.
lastRunstring | null (date-time)NoServer-computed timestamp of the most recent load-test run that used this profile. Null until the first run completes. Server-managed; clients must not set this on create/update.
totalResultsintegerNoServer-computed count of load-test results recorded for this profile. Server-managed; clients must not set this on create/update.
createdAtstring (date-time)YesTimestamp when the performance profile was created.
updatedAtstring (date-time)YesTimestamp when the performance profile was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Performance DELETE

/api/performance/profiles/{performanceProfileId}

Delete a performance profile

Deletes the performance profile identified by the path parameter and any associated performance results.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles/{performanceProfileId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles/{performanceProfileId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles/{performanceProfileId}

Parameters

Path parameters

NameTypeRequiredDescription
performanceProfileIdstring (uuid)YesPerformance profile ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Performance profile deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Performance GET

/api/performance/profiles/{performanceProfileId}/results

List performance results for a profile

Returns paginated load-test results associated with the performance profile identified by the path parameter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles/{performanceProfileId}/results

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles/{performanceProfileId}/results

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles/{performanceProfileId}/results

Parameters

Path parameters

NameTypeRequiredDescription
performanceProfileIdstring (uuid)YesPerformance profile ID.

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizestringNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance results

application/json

Paginated list of performance results.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
resultsarray of objectYesPerformance results in this page.
totalCountintegerYesTotal number of performance results across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Performance GET

/api/performance/profiles/{performanceProfileId}/results/{resultId}

Get a performance result for a profile

Returns one load-test result associated with the performance profile identified by the path parameter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/profiles/{performanceProfileId}/results/{resultId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/profiles/{performanceProfileId}/results/{resultId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/profiles/{performanceProfileId}/results/{resultId}

Parameters

Path parameters

NameTypeRequiredDescription
performanceProfileIdstring (uuid)YesPerformance profile ID.
resultIdstring (uuid)YesPerformance result ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance result

application/json

Load-test result captured for a Meshery performance profile.
FieldTypeRequiredDescription
createdAtstring (date-time)NoTimestamp when the performance result was created.
meshstringNoService mesh under test for this result.
mesheryIdstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
namestringNoHuman-readable name of the performance result.
ownerstring (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
performanceProfilestring | null (uuid)NoA Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
runnerResultsobjectNoRaw load-generator output for this performance result.
serverBoardConfigobjectNoServer board configuration associated with this performance result.
serverMetricsobjectNoServer-side metrics collected for this performance result.
testIdstringNoProvider-assigned test identifier for this result.
testStartTimestring (date-time)NoTime when the load test started.
updatedAtstring (date-time)NoTimestamp when the performance result was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Performance GET

/api/performance/results

List all performance results

Returns paginated load-test results visible to the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/performance/results

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/performance/results

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/performance/results

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pagesizestringNoGet responses by pagesize
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
fromstring (date)NoStart date for filtering results by test start time, in YYYY-MM-DD format.
tostring (date)NoEnd date for filtering results by test start time, in YYYY-MM-DD format.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Performance results

application/json

Paginated list of performance results.
FieldTypeRequiredDescription
pageintegerYesZero-based page index returned in this response.
pageSizeintegerYesMaximum number of items returned on each page.
resultsarray of objectYesPerformance results in this page.
totalCountintegerYesTotal number of performance results across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Connection API ConnectionDefinitions GET

/api/registry/connections

List connection definitions

Returns a paginated list of connection definitions registered in the registry, optionally filtered by model or kind.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/registry/connections

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/registry/connections

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/registry/connections

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoPage number
pageSizeintegerNoNumber of items per page
searchstringNoSearch term
orderstringNoSort order
modelstringNoFilter by the name of the model the connection definition belongs to
kindarray of stringNoFilter by connection kind (e.g., kubernetes, prometheus, grafana)

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Paginated list of connection definitions

application/json

Represents a page of connection definitions with meta information about the total count
FieldTypeRequiredDescription
connectionDefinitionsarray of schemaYesList of connection definitions on this page
totalCountintegerYesTotal number of connection definitions on all pages
pageintegerYesCurrent page number
pageSizeintegerYesNumber of elements per page
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Connection API ConnectionDefinitions POST

/api/registry/connections

Register a connection definition

Register a new connection definition into the registry.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/registry/connections

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/registry/connections

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/registry/connections

Request body

application/json Required
Payload for registering (creating) or updating a connection definition. Contains only client-settable fields; server-generated fields such as createdAt, updatedAt, and deletedAt are excluded.
FieldTypeRequiredDescription
connectionSchemaobjectNoSchema for connections of this kind.
credentialSchemaobjectNoSchema for the credential associated with connections of this kind.
descriptionstringNoHuman-readable description of the connection definition and its purpose.
idstring (uuid)NoExisting connection definition ID for updates; omit on create.
kindstringYesConnection kind (e.g., kubernetes, prometheus, grafana)
metadataobjectNoKind-specific connection metadata
modelReferenceobjectNoReference to the registered model that owns this connection definition.
namestringYesConnection definition name
schemaVersionstringNoSpecifies the version of the schema the definition conforms to.
statusstringYesConnection Status Value
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
subTypestringYesConnection sub-type (cloud, identity, metrics, chat, git, orchestration)
transitionMapobjectNoMap describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status.
typestringYesConnection type (platform, telemetry, collaboration)
urlstring (uri)NoURL of the remote resource connections of this kind point to.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Connection definition registered

application/json

A connection definition is an uninitialized connection, authored per-model (in a model’s connections/ folder) and registered into the registry alongside components and relationships. It conforms to the connection schema; the dynamic, kind-specific shape is carried in metadata. The model association scopes the definition to its owning model.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Connection API ConnectionDefinitions GET

/api/registry/connections/{connectionDefinitionId}

Get connection definition by ID

Returns a specific connection definition by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/registry/connections/{connectionDefinitionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/registry/connections/{connectionDefinitionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/registry/connections/{connectionDefinitionId}

Parameters

Path parameters

NameTypeRequiredDescription
connectionDefinitionIdstring (uuid)YesConnection definition ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Connection definition details

application/json

A connection definition is an uninitialized connection, authored per-model (in a model’s connections/ folder) and registered into the registry alongside components and relationships. It conforms to the connection schema; the dynamic, kind-specific shape is carried in metadata. The model association scopes the definition to its owning model.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API ConnectionDefinitions PUT

/api/registry/connections/{connectionDefinitionId}

Update a connection definition

Update an existing connection definition.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/registry/connections/{connectionDefinitionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/registry/connections/{connectionDefinitionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/registry/connections/{connectionDefinitionId}

Parameters

Path parameters

NameTypeRequiredDescription
connectionDefinitionIdstring (uuid)YesConnection definition ID

Request body

application/json Required
Payload for registering (creating) or updating a connection definition. Contains only client-settable fields; server-generated fields such as createdAt, updatedAt, and deletedAt are excluded.
FieldTypeRequiredDescription
connectionSchemaobjectNoSchema for connections of this kind.
credentialSchemaobjectNoSchema for the credential associated with connections of this kind.
descriptionstringNoHuman-readable description of the connection definition and its purpose.
idstring (uuid)NoExisting connection definition ID for updates; omit on create.
kindstringYesConnection kind (e.g., kubernetes, prometheus, grafana)
metadataobjectNoKind-specific connection metadata
modelReferenceobjectNoReference to the registered model that owns this connection definition.
namestringYesConnection definition name
schemaVersionstringNoSpecifies the version of the schema the definition conforms to.
statusstringYesConnection Status Value
stylesobjectNoVisualization styles for the connection, including svgColor and svgWhite used for UI representation.
subTypestringYesConnection sub-type (cloud, identity, metrics, chat, git, orchestration)
transitionMapobjectNoMap describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status.
typestringYesConnection type (platform, telemetry, collaboration)
urlstring (uri)NoURL of the remote resource connections of this kind point to.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Connection definition updated

application/json

A connection definition is an uninitialized connection, authored per-model (in a model’s connections/ folder) and registered into the registry alongside components and relationships. It conforms to the connection schema; the dynamic, kind-specific shape is carried in metadata. The model association scopes the definition to its owning model.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Connection API ConnectionDefinitions DELETE

/api/registry/connections/{connectionDefinitionId}

Delete a connection definition

Delete a specific connection definition from the registry.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/registry/connections/{connectionDefinitionId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/registry/connections/{connectionDefinitionId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/registry/connections/{connectionDefinitionId}

Parameters

Path parameters

NameTypeRequiredDescription
connectionDefinitionIdstring (uuid)YesConnection definition ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Connection definition deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design POST

/api/resource/{resourceType}/share/{resourceId}

Share a resource

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/resource/{resourceType}/share/{resourceId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/resource/{resourceType}/share/{resourceId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/resource/{resourceType}/share/{resourceId}

Parameters

Path parameters

NameTypeRequiredDescription
resourceTypestringYesNo description provided.
resourceIdstringYesNo description provided.

Request body

application/json Required

Schema: object

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Resource access mapping

application/json

400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Design GET

/api/resource/{resourceType}/share/{resourceId}/{actorType}

Get resource access actors by type

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/resource/{resourceType}/share/{resourceId}/{actorType}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/resource/{resourceType}/share/{resourceId}/{actorType}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/resource/{resourceType}/share/{resourceId}/{actorType}

Parameters

Path parameters

NameTypeRequiredDescription
resourceTypestringYesNo description provided.
resourceIdstringYesNo description provided.
actorTypestringYesNo description provided.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Resource access actors

application/json

FieldTypeRequiredDescription
usersarray of objectNoThe users of the resourceaccessactorsresponse.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

System POST

/api/system/email/test

Send a test email

Sends a test email through the configured SMTP provider to verify the email configuration. Restricted to provider administrators.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/system/email/test

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/system/email/test

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/system/email/test

Request body

application/json Required
Recipient and optional subject for the test email.
Request body for sending a test email through the configured SMTP provider.
FieldTypeRequiredDescription
subjectstringNoSubject line for the test message. A default subject is used when omitted.
tostring (email)YesRecipient email address for the test message.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Test email sent

application/json

Result of a test email send attempt.
FieldTypeRequiredDescription
messagestringYesHuman-readable result message.
sentTostring (email)YesRecipient address the test email was sent to.
statusstringYesOutcome status of the send attempt (e.g. success).
timestampstringYesUnix-epoch seconds, as a decimal string, when the test email was sent.
400
Invalid request payload or malformed recipient email address.
401
Expired JWT token used or insufficient privilege

text/plain

500
Email configuration validation failed or the send attempt errored.
System GET

/api/system/version

Get the running Meshery server's version metadata

Returns version metadata for the running Meshery service.

Authentication

No authentication required

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/system/version

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/system/version

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/system/version

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Server version metadata

application/json

Version metadata for a running Meshery service.
FieldTypeRequiredDescription
buildstringNoBuild identifier (typically the git tag of the running binary).
commitshastringNoGit commit SHA of the running service. The wire field is commitsha.
lateststringNoLatest available Meshery release tag fetched from GitHub.
outdatedbooleanNoTrue when the running build is older than the latest available release.
releaseChannelstringNoRelease channel of the running binary (e.g. stable, edge).
versionstringNoMeshery Cloud deployment version.
500
Encoding error while serializing the version payload.
User GET

/api/users

Get public users

Returns the publicly viewable user directory. Records are reduced to the PublicUser projection (username and avatar); personally identifying fields such as email and real names are never served on this unauthenticated path.

Authentication

No authentication required

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/users

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/users

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/users

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
filterstringNoGet filtered reponses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Paginated list of public users

application/json

Paginated list of publicly viewable user records
FieldTypeRequiredDescription
dataarray of objectYesPublic user records for the requested page.
pageintegerYesCurrent page number of the result set.
pageSizeintegerYesNumber of items per page.
totalCountintegerYesTotal number of items available.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Workspace GET

/api/workspaces

Get all workspaces

Gets all workspaces accessible to the current user, optionally scoped to a specific organization.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces

Parameters

Query parameters

NameTypeRequiredDescription
orgIdstring (uuid)NoOrganization ID used to scope the workspace listing.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string used for assignment and soft-delete filters.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspaces

application/json

Paginated list of workspaces.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
workspacesarray of objectNoList of workspaces with resolved owner details.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Workspace POST

/api/workspaces

Create a workspace

Creates a new workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces

Request body

application/json Required
Body for creating a workspace
Payload for creating a workspace.
FieldTypeRequiredDescription
descriptionstringNoDescription of the workspace.
metadataobjectNoMetadata associated with the workspace.
namestringYesName of the workspace.
organizationIdstring (uuid)YesOrganization ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

201
Created workspace

application/json

A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces
FieldTypeRequiredDescription
createdAtstring (date-time)YesTimestamp when the workspace was created.
deletedAtstring (date-time)NoTimestamp when the workspace was soft-deleted. Null while the workspace is active.
descriptionstringNoDescription of the workspace.
idstring (uuid)YesNo description provided.
metadataobjectNoMetadata associated with the workspace.
namestringYesName of the workspace.
organizationIdstring (uuid)YesOrganization to which this workspace belongs.
ownerstring (uuid)NoUser ID of the workspace owner.
updatedAtstring (date-time)YesTimestamp when the workspace was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Workspace GET

/api/workspaces/{workspaceId}

Get a workspace by ID

Gets a workspace by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace

application/json

A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces
FieldTypeRequiredDescription
createdAtstring (date-time)YesTimestamp when the workspace was created.
deletedAtstring (date-time)NoTimestamp when the workspace was soft-deleted. Null while the workspace is active.
descriptionstringNoDescription of the workspace.
idstring (uuid)YesNo description provided.
metadataobjectNoMetadata associated with the workspace.
namestringYesName of the workspace.
organizationIdstring (uuid)YesOrganization to which this workspace belongs.
ownerstring (uuid)NoUser ID of the workspace owner.
updatedAtstring (date-time)YesTimestamp when the workspace was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace PUT

/api/workspaces/{workspaceId}

Update a workspace

Updates a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Request body

application/json Required
Body for updating a workspace
Payload for updating a workspace.
FieldTypeRequiredDescription
descriptionstringNoDescription of the workspace.
metadataobjectNoMetadata associated with the workspace.
namestringNoName of the workspace.
organizationIdstring (uuid)YesOrganization ID.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace

application/json

A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces
FieldTypeRequiredDescription
createdAtstring (date-time)YesTimestamp when the workspace was created.
deletedAtstring (date-time)NoTimestamp when the workspace was soft-deleted. Null while the workspace is active.
descriptionstringNoDescription of the workspace.
idstring (uuid)YesNo description provided.
metadataobjectNoMetadata associated with the workspace.
namestringYesName of the workspace.
organizationIdstring (uuid)YesOrganization to which this workspace belongs.
ownerstring (uuid)NoUser ID of the workspace owner.
updatedAtstring (date-time)YesTimestamp when the workspace was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace DELETE

/api/workspaces/{workspaceId}

Delete a workspace

Deletes a workspace by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Workspace deleted
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace GET

/api/workspaces/{workspaceId}/designs

Get designs assigned to a workspace

Gets designs assigned to or available for a workspace depending on the filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/designs

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/designs

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/designs

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string used for assignment and soft-delete filters.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Designs

application/json

Paginated list of designs.
FieldTypeRequiredDescription
designsarray of objectNoDesigns in this page.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace POST

/api/workspaces/{workspaceId}/designs/{designId}

Assign a design to a workspace

Assigns a design to a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/designs/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/designs/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/designs/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
designIdstring (uuid)YesDesign ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace design mappings

application/json

Paginated list of workspace-design mappings.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
workspacesDesignsMappingarray of objectNoWorkspace-design mapping entries.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace DELETE

/api/workspaces/{workspaceId}/designs/{designId}

Unassign a design from a workspace

Removes a design from a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/designs/{designId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/designs/{designId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/designs/{designId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
designIdstring (uuid)YesDesign ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Workspace design mapping removed
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace GET

/api/workspaces/{workspaceId}/environments

Get environments assigned to a workspace

Gets environments assigned to or available for a workspace depending on the filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/environments

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/environments

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/environments

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string used for assignment and soft-delete filters.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Environments

application/json

Paginated list of environments.
FieldTypeRequiredDescription
environmentsarray of objectNoEnvironments associated with this resource.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace POST

/api/workspaces/{workspaceId}/environments/{environmentId}

Assign an environment to a workspace

Assigns an environment to a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/environments/{environmentId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/environments/{environmentId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/environments/{environmentId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
environmentIdstring (uuid)YesEnvironment ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace environment mappings

application/json

Paginated list of workspace-environment mappings.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
workspacesEnvironmentsMappingarray of objectNoWorkspace-environment mapping entries.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace DELETE

/api/workspaces/{workspaceId}/environments/{environmentId}

Unassign an environment from a workspace

Removes an environment from a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/environments/{environmentId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/environments/{environmentId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/environments/{environmentId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
environmentIdstring (uuid)YesEnvironment ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Workspace environment mapping removed
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Events GET

/api/workspaces/{workspaceId}/events

Get workspace events

Gets events for a workspace.

Authentication

Bearer JWT

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/events

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/events

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/events

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace events

application/json

Paginated list of events.
FieldTypeRequiredDescription
dataarray of objectNoThe events returned on the current page.
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
400
Invalid request

application/json

Generic error envelope returned for non-2xx responses.
FieldTypeRequiredDescription
errorstringNoHuman-readable error message.
401
Unauthorized
404
Workspace not found
500
Server error
Workspace GET

/api/workspaces/{workspaceId}/teams

Get teams assigned to a workspace

Gets teams assigned to or available for a workspace depending on the filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/teams

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/teams

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/teams

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string used for assignment and soft-delete filters.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Teams

application/json

Paginated list of teams
FieldTypeRequiredDescription
pageintegerNoNo description provided.
page_sizeintegerNoNo description provided.
teamsarray of objectNoThe teams of the teampage.
total_countintegerNoNo description provided.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace POST

/api/workspaces/{workspaceId}/teams/{teamId}

Assign a team to a workspace

Assigns a team to a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/teams/{teamId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/teams/{teamId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/teams/{teamId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
teamIdstring (uuid)YesTeam ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace team mappings

application/json

Paginated list of workspace-team mappings.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
workspacesTeamsMappingarray of objectNoWorkspace-team mapping entries.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace DELETE

/api/workspaces/{workspaceId}/teams/{teamId}

Unassign a team from a workspace

Removes a team from a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/teams/{teamId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/teams/{teamId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/teams/{teamId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
teamIdstring (uuid)YesTeam ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Workspace team mapping removed
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace GET

/api/workspaces/{workspaceId}/views

Get views assigned to a workspace

Gets views assigned to or available for a workspace depending on the filter.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/views

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/views

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/views

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID

Query parameters

NameTypeRequiredDescription
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses
pageintegerNoGet responses by page
pageSizeintegerNoNumber of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase pagesize.
pagesizeintegerNoGet responses by pagesize. Deprecated alias of pageSize.
filterstringNoJSON-encoded filter string used for assignment and soft-delete filters.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Views

application/json

Paginated list of views with location enrichment.
FieldTypeRequiredDescription
pageintegerNoNo description provided.
page_sizeintegerNoNo description provided.
total_countintegerNoNo description provided.
viewsarray of objectNoViews in this page, enriched with workspace and organization context.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace POST

/api/workspaces/{workspaceId}/views/{viewId}

Assign a view to a workspace

Assigns a view to a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/views/{viewId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/views/{viewId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/views/{viewId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
viewIdstring (uuid)YesView ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Workspace view mappings

application/json

Paginated list of workspace-view mappings.
FieldTypeRequiredDescription
pageintegerNoZero-based page index returned in this response.
pageSizeintegerNoMaximum number of items returned on each page.
totalCountintegerNoTotal number of items across all pages.
workspacesViewsMappingarray of objectNoWorkspace-view mapping entries.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Workspace DELETE

/api/workspaces/{workspaceId}/views/{viewId}

Unassign a view from a workspace

Removes a view from a workspace.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/api/workspaces/{workspaceId}/views/{viewId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/api/workspaces/{workspaceId}/views/{viewId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/api/workspaces/{workspaceId}/views/{viewId}

Parameters

Path parameters

NameTypeRequiredDescription
workspaceIdstring (uuid)YesWorkspace ID
viewIdstring (uuid)YesView ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Workspace view mapping removed
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Schedule GET

/user/schedules

Get schedules

Returns all schedules for the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/user/schedules

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/user/schedules

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/user/schedules

Parameters

Query parameters

NameTypeRequiredDescription
pageintegerNoGet responses by page
pageSizeintegerNoGet responses by page size
searchstringNoGet responses that match search param value
orderstringNoGet ordered responses

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Schedules response

application/json

A paginated list of schedules.
FieldTypeRequiredDescription
pageintegerYesCurrent page number (zero-based).
pageSizeintegerYesNumber of schedules per page.
totalCountintegerYesTotal number of schedules across all pages.
schedulesarray of objectYesThe schedules of the schedulepage.
401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Schedule POST

/user/schedules

Create or update schedule

Creates or updates a schedule for the authenticated user.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/user/schedules

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/user/schedules

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/user/schedules

Request body

application/json Required
Payload for upserting a schedule. Includes only client-settable fields.
FieldTypeRequiredDescription
cronExpressionstringYesCron expression defining the schedule’s recurrence (e.g. “0 0 * * *” for daily at midnight).
idstring (uuid)NoExisting schedule ID for updates; omit on create.
namestringYesHuman-readable name for the schedule.
userIdstring (uuid)NoOwner user ID; inferred from the authenticated user when omitted.

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Schedule upserted

application/json

A schedule defines a recurring cron-based trigger for performance tests or other automated tasks.
FieldTypeRequiredDescription
idstring (uuid)NoUnique identifier for the schedule.
namestringYesHuman-readable name for the schedule.
userIdstring (uuid)YesUUID of the user who owns this schedule.
cronExpressionstringYesCron expression defining the schedule’s recurrence (e.g. “0 0 * * *” for daily at midnight).
lastRunstring (date-time)NoServer-computed timestamp of the schedule’s most recent execution. Null until the first run completes. Server-managed; clients must not set this on create/update.
nextRunstring (date-time)NoServer-computed timestamp of the schedule’s next planned execution, derived from the cron expression. Server-managed; clients must not set this on create/update.
createdAtstring (date-time)NoTimestamp when the schedule was created.
updatedAtstring (date-time)NoTimestamp when the schedule was last updated.
400
Invalid request body or request param

text/plain

401
Expired JWT token used or insufficient privilege

text/plain

500
Internal server error

text/plain

Schedule GET

/user/schedules/{scheduleId}

Get schedule by ID

Returns a specific schedule by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/user/schedules/{scheduleId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/user/schedules/{scheduleId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/user/schedules/{scheduleId}

Parameters

Path parameters

NameTypeRequiredDescription
scheduleIdstring (uuid)YesSchedule ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

200
Schedule response

application/json

A schedule defines a recurring cron-based trigger for performance tests or other automated tasks.
FieldTypeRequiredDescription
idstring (uuid)NoUnique identifier for the schedule.
namestringYesHuman-readable name for the schedule.
userIdstring (uuid)YesUUID of the user who owns this schedule.
cronExpressionstringYesCron expression defining the schedule’s recurrence (e.g. “0 0 * * *” for daily at midnight).
lastRunstring (date-time)NoServer-computed timestamp of the schedule’s most recent execution. Null until the first run completes. Server-managed; clients must not set this on create/update.
nextRunstring (date-time)NoServer-computed timestamp of the schedule’s next planned execution, derived from the cron expression. Server-managed; clients must not set this on create/update.
createdAtstring (date-time)NoTimestamp when the schedule was created.
updatedAtstring (date-time)NoTimestamp when the schedule was last updated.
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Schedule DELETE

/user/schedules/{scheduleId}

Delete schedule

Deletes a schedule by its ID.

Try this endpoint

Substitute your own Layer5 Cloud hostname when you are working against a hosted or self-managed instance.

Meshery Cloud production server URL

https://cloud.meshery.io/user/schedules/{scheduleId}

Meshery Cloud staging server URL

https://staging-cloud.meshery.io/user/schedules/{scheduleId}

Meshery Cloud development server URL (controlled via PORT environment variable)

http://localhost:9876/user/schedules/{scheduleId}

Parameters

Path parameters

NameTypeRequiredDescription
scheduleIdstring (uuid)YesSchedule ID

Returned data

Responses

Status codes, content types, and response schemas returned by this endpoint.

204
Schedule deleted
401
Expired JWT token used or insufficient privilege

text/plain

404
Result not found

text/plain

500
Internal server error

text/plain

Related Reading

Last modified April 16, 2026: Update rest.md (ee73badaf70)