DevMargin · JSON-LD Context
Devmargin App Context
JSON-LD context defining the semantic vocabulary for Devmargin App from DevMargin.
11 Classes
43 Properties
4 Namespaces
Namespaces
schema:
https://schema.org/
xsd:
http://www.w3.org/2001/XMLSchema#
dcterms:
http://purl.org/dc/terms/
devmargin:
https://devmargin.app/schema#
Classes
PushErrorBody
V1ErrorBody
PushMetricsBody
PushEarnedBody
PushCostBody
PushMetricsResult
PushEarnedResult
PushCostResult
Portfolio
ProjectRow
NewCost
Properties
| Property | Type | Container |
|---|---|---|
| error | string | |
| message | string | |
| channel | string | |
| metrics | ||
| earned | ||
| project | string | |
| cost | ||
| ok | boolean | |
| stored | list | |
| note | string | |
| month | string | |
| status | string | |
| created | boolean | |
| pulledAt | dateTime | |
| currency | string | |
| plan | string | |
| historyDays | integer | |
| windowNote | string | |
| portfolio | ||
| trend | list | |
| earnedYear | integer | |
| earnedThisYearUsd | reference | |
| earnedTotalUsd | reference | |
| earnedThisMonthSoFarUsd | ||
| earnedThisMonthMissingRails | list | |
| earnedSeries | ||
| projects | list | |
| name | string | |
| mrrUsd | reference | |
| costMonthlyUsd | reference | |
| netMonthlyUsd | reference | |
| activeSubs | integer | |
| users | integer | |
| churnedSubs | integer | |
| oneOffRevenueUsd | ||
| channels | list | |
| label | string | |
| amount | decimal | |
| period | string | |
| incurredOn | date | |
| scope | string | |
| projectId | string | |
| sharedProjects | list |
JSON-LD Document
{
"@context": {
"@vocab": "https://devmargin.app/schema#",
"schema": "https://schema.org/",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"dcterms": "http://purl.org/dc/terms/",
"devmargin": "https://devmargin.app/schema#",
"PushErrorBody": "devmargin:PushErrorBody",
"error": {
"@id": "devmargin:error",
"@type": "xsd:string"
},
"V1ErrorBody": "devmargin:V1ErrorBody",
"message": {
"@id": "devmargin:message",
"@type": "xsd:string"
},
"PushMetricsBody": "devmargin:PushMetricsBody",
"channel": {
"@id": "devmargin:channel",
"@type": "xsd:string"
},
"metrics": {
"@id": "devmargin:metrics"
},
"PushEarnedBody": "devmargin:PushEarnedBody",
"earned": {
"@id": "devmargin:earned"
},
"PushCostBody": "devmargin:PushCostBody",
"project": {
"@id": "devmargin:project",
"@type": "xsd:string"
},
"cost": {
"@id": "devmargin:cost"
},
"PushMetricsResult": "devmargin:PushMetricsResult",
"ok": {
"@id": "devmargin:ok",
"@type": "xsd:boolean"
},
"stored": {
"@id": "devmargin:stored",
"@container": "@list"
},
"note": {
"@id": "devmargin:note",
"@type": "xsd:string"
},
"PushEarnedResult": "devmargin:PushEarnedResult",
"month": {
"@id": "devmargin:month",
"@type": "xsd:string"
},
"status": {
"@id": "devmargin:status",
"@type": "xsd:string"
},
"PushCostResult": "devmargin:PushCostResult",
"created": {
"@id": "devmargin:created",
"@type": "xsd:boolean"
},
"Portfolio": "devmargin:Portfolio",
"pulledAt": {
"@id": "devmargin:pulledAt",
"@type": "xsd:dateTime"
},
"currency": {
"@id": "devmargin:currency",
"@type": "xsd:string"
},
"plan": {
"@id": "devmargin:plan",
"@type": "xsd:string"
},
"historyDays": {
"@id": "devmargin:historyDays",
"@type": "xsd:integer"
},
"windowNote": {
"@id": "devmargin:windowNote",
"@type": "xsd:string"
},
"portfolio": {
"@id": "devmargin:portfolio"
},
"trend": {
"@id": "devmargin:trend",
"@container": "@list"
},
"earnedYear": {
"@id": "devmargin:earnedYear",
"@type": "xsd:integer"
},
"earnedThisYearUsd": {
"@id": "devmargin:earnedThisYearUsd",
"@type": "@id"
},
"earnedTotalUsd": {
"@id": "devmargin:earnedTotalUsd",
"@type": "@id"
},
"earnedThisMonthSoFarUsd": {
"@id": "devmargin:earnedThisMonthSoFarUsd"
},
"earnedThisMonthMissingRails": {
"@id": "devmargin:earnedThisMonthMissingRails",
"@container": "@list"
},
"earnedSeries": {
"@id": "devmargin:earnedSeries"
},
"projects": {
"@id": "devmargin:projects",
"@container": "@list"
},
"ProjectRow": "devmargin:ProjectRow",
"name": {
"@id": "devmargin:name",
"@type": "xsd:string"
},
"mrrUsd": {
"@id": "devmargin:mrrUsd",
"@type": "@id"
},
"costMonthlyUsd": {
"@id": "devmargin:costMonthlyUsd",
"@type": "@id"
},
"netMonthlyUsd": {
"@id": "devmargin:netMonthlyUsd",
"@type": "@id"
},
"activeSubs": {
"@id": "devmargin:activeSubs",
"@type": "xsd:integer"
},
"users": {
"@id": "devmargin:users",
"@type": "xsd:integer"
},
"churnedSubs": {
"@id": "devmargin:churnedSubs",
"@type": "xsd:integer"
},
"oneOffRevenueUsd": {
"@id": "devmargin:oneOffRevenueUsd"
},
"channels": {
"@id": "devmargin:channels",
"@container": "@list"
},
"NewCost": "devmargin:NewCost",
"label": {
"@id": "devmargin:label",
"@type": "xsd:string"
},
"amount": {
"@id": "devmargin:amount",
"@type": "xsd:decimal"
},
"period": {
"@id": "devmargin:period",
"@type": "xsd:string"
},
"incurredOn": {
"@id": "devmargin:incurredOn",
"@type": "xsd:date"
},
"scope": {
"@id": "devmargin:scope",
"@type": "xsd:string"
},
"projectId": {
"@id": "devmargin:projectId",
"@type": "xsd:string"
},
"sharedProjects": {
"@id": "devmargin:sharedProjects",
"@container": "@list"
}
},
"@type": "schema:Dataset",
"schema:name": "DevMargin API JSON-LD context",
"schema:description": "A JSON-LD @context for the objects DevMargin's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-05) from openapi/_original/devmargin-app-openapi-openapi.yml.",
"dcterms:created": "2026-11-05",
"dcterms:source": [
"openapi/_original/devmargin-app-openapi-openapi.yml"
]
}