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
View Context View on GitHub

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

Raw ↑
{
  "@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"
  ]
}