{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/orbit/main/json-schema/orbit-activity-and-identity-schema.json", "title": "activity_and_identity", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/orbit-activities-api-openapi.yml#/components/schemas/activity_and_identity", "type": "object", "properties": { "activity": { "oneOf": [ { "$ref": "#/$defs/activity_with_member" }, { "$ref": "#/$defs/post_activity_with_member" } ] }, "identity": { "$ref": "#/$defs/identity" } }, "$defs": { "activity": { "title": "Custom Activity", "type": "object", "properties": { "description": { "type": "string", "description": "A description of the activity; displayed in the timeline" }, "link": { "type": "string", "description": "A URL for the activity; displayed in the timeline" }, "link_text": { "type": "string", "description": "The text for the timeline link" }, "title": { "type": "string", "description": "A title for the activity; displayed in the timeline" }, "weight": { "type": "string", "description": "A custom weight to be used in filters and reports; defaults to 1." }, "activity_type": { "type": "string", "description": "The type of activity - what action was done by the member. This is a legacy field, use activity_type_key instead." }, "activity_type_key": { "type": "string", "description": "The key for a custom activity type for the workspace. Will create a new activity type if it does not exist." }, "key": { "type": "string", "description": "Supply a key that must be unique or leave blank to have one generated." }, "occurred_at": { "type": "string", "description": "The date and time the activity occurred; defaults to now" }, "properties": { "type": "object", "description": "Key-value pairs to provide contextual metadata about an activity." } }, "required": [ "title" ] }, "activity_with_member": { "title": "Custom Activity", "allOf": [ { "$ref": "#/$defs/activity" }, { "type": "object", "properties": { "member": { "$ref": "#/$defs/member" } } } ] }, "identity": { "type": "object", "description": "Represents an email address, a profile on networks like github and twitter, or a record in another system.", "properties": { "name": { "type": "string", "description": "The name of the person in the source system" }, "source": { "type": "string", "description": "The type of source: known values include github, twitter, discourse, email, linkedin, devto. Custom values can also be used" }, "source_host": { "type": "string", "description": "Specifies the location of the source, such as the host of a Discourse instance" }, "username": { "type": "string", "description": "The username of the person in the source system" }, "uid": { "type": "string", "description": "The uid of the person in the source system" }, "email": { "type": "string", "description": "The email of the person in the source system" }, "url": { "type": "string", "description": "For custom identities, an optional link to the profile on the source system" } }, "required": [ "source" ] }, "member": { "type": "object", "properties": { "bio": { "type": "string" }, "birthday": { "type": "string" }, "company": { "type": "string" }, "title": { "type": "string" }, "location": { "type": "string" }, "name": { "type": "string" }, "pronouns": { "type": "string" }, "shipping_address": { "type": "string" }, "slug": { "type": "string" }, "tags_to_add": { "type": "string", "description": "Adds tags to member; comma-separated string or array" }, "tags": { "type": "string", "description": "Replaces all tags for the member; comma-separated string or array" }, "tag_list": { "type": "string", "description": "Deprecated: Please use the tags attribute instead" }, "tshirt": { "type": "string" }, "teammate": { "type": "boolean" }, "url": { "type": "string" }, "github": { "type": "string", "description": "The member's GitHub username" }, "twitter": { "type": "string", "description": "The member's Twitter username" }, "email": { "type": "string", "description": "The member's email" }, "linkedin": { "type": "string", "description": "The member's LinkedIn username, without the in/ or pub/" }, "devto": { "type": "string", "description": "The member's DEV username" } } }, "post_activity": { "title": "Content Activity", "type": "object", "properties": { "url": { "type": "string", "description": "The url representing the post" }, "occurred_at": { "type": "string", "description": "The date and time at which the content was published; defaults to now" }, "activity_type": { "type": "string", "enum": [ "content" ] } }, "required": [ "url", "activity_type" ] }, "post_activity_with_member": { "title": "Content Activity", "allOf": [ { "$ref": "#/$defs/post_activity" }, { "type": "object", "properties": { "member": { "$ref": "#/$defs/member" } } } ] } } }