Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview

Get schema fields of topic

List the fields of every schema that the data of a named topic in the resource owner org uses.

The name arrives URL-quoted in the path, since topic names can contain slashes. A name the org has no topic identity for answers 404. Each field comes back once per schema that declares it, with that schema’s schema_id, type and unit, so a field that two schemas declare comes back twice. Each field’s path_in_schema holds its path components as stored, so a component that contains a dot stays one component.

Records are ordered by (schema_id, path_in_schema). A page holds at most 1000 records and ends at the last record that fits the response size limit; a first record that does not fit is still returned alone. Pass a page’s next_token as page_token to read the next page. A topic with no fields gives an empty page.

The caller must hold topic view access in the resource owner org. The route checks it before the lookup, so a caller without it gets the same 401 whether or not the name exists.

Access control

  • requires_resource_owner
  • Restricted tokens need the API scope api.everything_else
GET/v2/topics/name/{url_quoted_topic_name}/fields
Authorization
AuthorizationBearer token · headerrequired
Path parameters
url_quoted_topic_namestringrequired
Query parameters
page_tokenstring
Header parameters
X-Roboto-Org-Idstring
X-Roboto-User-Idstring
Responses
200

OK

dataobjectrequired
Show properties
itemsSchemaFieldRecord[]required
Show properties
Array of SchemaFieldRecord
canonical_data_typeCanonicalDataTyperequired

Normalized data types used across different robotics frameworks.

Well-known and simplified data types that provide a common vocabulary for describing message path data types across different frameworks and technologies. These canonical types are primarily used for UI rendering decisions and cross-platform compatibility.

The canonical types abstract away framework-specific details while preserving the essential characteristics needed for data processing and visualization.

References: - ROS 1 field types: http://wiki.ros.org/msg - ROS 2 field types: https://docs.ros.org/en/iron/Concepts/Basic/About-Interfaces.html#field-types - uORB: https://docs.px4.io/main/en/middleware/uorb.html#adding-a-new-topic

Example mappings: - float32 -> CanonicalDataType.Number - uint8[] -> CanonicalDataType.Array - sensor_msgs/Image -> CanonicalDataType.Image - geometry_msgs/Pose -> CanonicalDataType.Object - std_msgs/Header -> CanonicalDataType.Object - string -> CanonicalDataType.String - char -> CanonicalDataType.String - bool -> CanonicalDataType.Boolean - byte -> CanonicalDataType.Byte

Allowed:arraybooleanbytecategoricalimagenumbernumber_arrayobjectstringtimestampunknownlatdegfloatlondegfloatlatdegintlondegint
createdstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
created_bystringrequired
data_typestringrequired
field_idstringrequired
modifiedstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
modified_bystringrequired
namestringrequired
org_idstringrequired
path_in_schemastring[]required
schema_idstringrequired
unitstring | null
default: null
Show properties
Any of:
string
string
null
null
element_namesstring[] | null
default: null
Show properties
Any of:
string[]
Array of string
string
null
null
next_tokenstring | null
default: null
Show properties
Any of:
string
string
null
null
total_countinteger | null
default: null
Show properties
Any of:
integer
integer
null
null
400

Thrown when the conversation context (messages, system prompt, tool results) exceeds the model's context window limit.

The token estimate and the model's context limit are not carried on the exception, so a caller cannot read usage numbers off it.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
401

Thrown when authentication fails

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
403

Thrown if an operation would exceed a user or org level limit.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
404

Thrown if a user is attempting to perform an action unrecognized by the Roboto platform.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
409

Thrown if there is a conflict between a resource you're creating and another existing resource

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
410

Thrown if a resource is missing or expired.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
500

An error the platform reported that this SDK release cannot resolve to a specific exception class.

Reported for an element of a :py:class:~roboto.http.BatchResponse whose error names a code this release defines no class for, or that arrived without a code, without a message, or as text that is not an error envelope at all. It carries whatever code and message the platform sent, so a caller handling the failure still learns what went wrong; when no message could be read, the message is the error's raw text.

The error envelope carries no status code, so http_status_code reports the 500 inherited from :py:class:RobotoDomainException rather than the status the failure actually had.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
501

Thrown by shimmed out APIs which have not yet been implemented

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
503

Thrown when a service is unavailable, such as when it's under heavy load and can't accept new requests. This is expected to be transient and ought to be retried.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
504

Thrown when the service times out while processing a request. This is exepcted to be transient and ought to be retried.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
507

Thrown when the server cannot complete the request because the response payload exceeds a storage or transport capacity limit (e.g., Lambda response size). This is NOT expected to be transient and should NOT be retried.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
Try it
Server
Authorization
Parameters
Request
curl -X GET 'https://api.roboto.ai/v2/topics/name/string/fields' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json'
Response
{
  "data": {
    "items": [
      {
        "canonical_data_type": "array",
        "created": null,
        "created_by": "string",
        "data_type": "string",
        "field_id": "string",
        "modified": null,
        "modified_by": "string",
        "name": "string",
        "org_id": "string",
        "path_in_schema": [
          "string"
        ],
        "schema_id": "string",
        "unit": null,
        "element_names": null
      }
    ],
    "next_token": null,
    "total_count": null
  }
}

Was this page helpful?