--- openapi: 3.0.1 info: title: DFC Sample API version: v1.12.1 contact: { "name": "DFC General Contact" , "url": "https://www.datafoodconsortium.org/" , "email": "hello@datafoodconsortium.org" } description: |

This API implements the Data Food Consortium (DFC) specifications. It serves and reads semantic data encoded in JSON-LD.

components: securitySchemes: oidc_token: type: openIdConnect openIdConnectUrl: https://login.lescommuns.org/auth/realm/datafoodconsortium description: "Provide a JWT Access Token in the header, with approriate access from the Keycloak server. Format: Authorzation: JWT " security: - oidc_token: [] paths: "/api/dfc/Addresses/{id}": get: summary: Show address parameters: - name: id in: path required: true schema: type: string tags: - Addresses responses: '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Addresses/40000 "@type": dfc-b:Address dfc-b:street: 10 Lovely Street dfc-b:postcode: '20170' dfc-b:city: Herndon dfc-b:hasCountry: United States of America dfc-b:region: Virginia dfc-b:latitude: 38.89750 dfc-b:longitude: -77.00920 dfc-b:addressOf: http://test.host/api/dfc/Enterprises/10000 '404': description: not found "/api/dfc/Enterprises/{enterprise_id}/CatalogItems": parameters: - name: enterprise_id in: path required: true schema: type: string get: summary: List all CatalogItems for an Enterprise parameters: - name: before description: The cursor returned from a previous request, requesting the API return elements before that id. in: query required: false schema: type: string - name: after description: The cursor returned from a previous request, requesting the API return elements after that id. in: query required: false schema: type: string - name: first description: Return up to the first x elements in the list in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 255 default: 25 example: 25 - name: last description: Return up to the last x elements in the list in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 255 default: 25 example: 25 tags: - CatalogItems responses: '404': description: not found '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": - "@id": http://test.host/api/dfc/Enterprises/10000 "@type": dfc-b:Enterprise dfc-b:name: Fred's Farm dfc-b:hasDescription: Beautiful dfc-b:manages: http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 - "@id": http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 "@type": dfc-b:CatalogItem dfc-b:references: http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 dfc-b:sku: AR dfc-b:stockLimitation: 0 dfc-b:offeredThrough: http://test.host/api/dfc/Enterprises/10000/Offers/10001 - "@id": http://test.host/api/dfc/Enterprises/10000/Offers/10001 "@type": dfc-b:Offer dfc-b:hasPrice: 19.99 dfc-b:stockLimitation: 0 '401': description: unauthorized "/api/dfc/Enterprises/{enterprise_id}/CatalogItems/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Show CatalogItem tags: - CatalogItems responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": - "@id": http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 "@type": dfc-b:CatalogItem dfc-b:references: http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 dfc-b:sku: AR dfc-b:stockLimitation: 0 dfc-b:offeredThrough: http://test.host/api/dfc/Enterprises/10000/Offers/10001 - "@id": http://test.host/api/dfc/Enterprises/10000/Offers/10001 "@type": dfc-b:Offer dfc-b:hasPrice: 19.99 dfc-b:stockLimitation: 0 '404': description: not found post: summary: create a new CatalogItem for a given Enterprise parameters: [] tags: - CatalogItems requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@graph": [ { "@id": "#" , "@type": dfc-b:CatalogItem , dfc-b:references: http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 , dfc-b:sku: AR , dfc-b:stockLimitation: 0 , dfc-b:offeredThrough: { "@id": "#1" , "@type": dfc-b:Offer , dfc-b:hasPrice: { "@id": "#2" , "@type": dfc-b:Price , dfc-b:hasUnit: GBP , dfc-b:value: 4.95 , dfc-b:VATrate: 0.0 } } } ] responses: '201': description: created content: application/json: schema: example: "@id": http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 '400': description: bad request '401': description: unauthorized put: summary: Update CatalogItem parameters: [] tags: - CatalogItems responses: '204': description: no content requestBody: content: application/json: schema: example: "@context": rdfs: http://www.w3.org/2000/01/rdf-schema# skos: http://www.w3.org/2004/02/skos/core# dfc: http://static.datafoodconsortium.org/ontologies/DFC_FullModel.owl# dc: http://purl.org/dc/elements/1.1/# dfc-b: http://static.datafoodconsortium.org/ontologies/DFC_BusinessOntology.owl# dfc-p: http://static.datafoodconsortium.org/ontologies/DFC_ProductOntology.owl# dfc-t: http://static.datafoodconsortium.org/ontologies/DFC_TechnicalOntology.owl# dfc-m: http://static.datafoodconsortium.org/data/measures.rdf# dfc-pt: http://static.datafoodconsortium.org/data/productTypes.rdf# dfc-f: http://static.datafoodconsortium.org/data/facets.rdf# dfc-p:hasUnit: "@type": "@id" dfc-b:hasUnit: "@type": "@id" dfc-b:hasQuantity: "@type": "@id" dfc-p:hasType: "@type": "@id" dfc-b:hasType: "@type": "@id" dfc-b:references: "@type": "@id" dfc-b:referencedBy: "@type": "@id" dfc-b:offeres: "@type": "@id" dfc-b:supplies: "@type": "@id" dfc-b:defines: "@type": "@id" dfc-b:affiliates: "@type": "@id" dfc-b:manages: "@type": "@id" dfc-b:offeredThrough: "@type": "@id" dfc-b:hasBrand: "@type": "@id" dfc-b:hasGeographicalOrigin: "@type": "@id" dfc-b:hasClaim: "@type": "@id" dfc-b:hasAllergenDimension: "@type": "@id" dfc-b:hasNutrimentDimension: "@type": "@id" dfc-b:hasPhysicalDimension: "@type": "@id" dfc:owner: "@type": "@id" dfc-t:hostedBy: "@type": "@id" dfc-t:hasPivot: "@type": "@id" dfc-t:represent: "@type": "@id" dfc-b:stockLimitation: '3' dfc-b:sku: new-sku "/api/dfc/Enterprises/{enterprise_id}/customerCategories": parameters: - name: enterprise_id in: path required: true schema: type: string get: summary: Return a list of Customer Categories for an Enterprise parameters: [] tags: - CustomerCategory responses: '404': description: not found '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": - "@id": http://test.host/api/dfc/Enterprises/10000/customerCategories/10005 "@type": dfc-b:customerCategory dfc-b:definedBy: http://test.host/api/dfc/Enterprises/10000 post: summary: create a new Customer Category for a given Enterprise parameters: [] tags: - CustomerCategory responses: '201': description: created content: application/json: schema: example: "@id": http://test.host/api/dfc/Enterprises/10000/customerCategories/10006 '400': description: bad request '401': description: unauthorized requestBody: content: application/json: schema: example: "@id": "#" dfc-b:definedBy: http://test.host/api/dfc/Enterprises/10000 "/api/dfc/Enterprises/{enterprise_id}/customerCategories/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Return a specific Customer Category for an Enterprise parameters: [] tags: - CustomerCategory responses: '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": - "@id": http://test.host/api/dfc/Enterprises/10000/customerCategories/10005 "@type": dfc-b:customerCategory dfc-b:definedBy: http://test.host/api/dfc/Enterprises/10000 delete: summary: remove a Customer Category for a given Enterprise parameters: [] tags: - CustomerCategory requestBody: content: application/json: schema: example: "@id": http://test.host/api/dfc/Enterprises/10000/customerCategories/10006 responses: '204': description: no content '401': description: unauthorized "/api/dfc/Enterprises/{id}": parameters: - name: id in: path required: true schema: type: string get: summary: Show enterprise parameters: [] tags: - Enterprises responses: '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": [ { "@id": http://test.host/api/dfc/Enterprises/10000 , "@type": dfc-b:Enterprise , dfc-b:hasAddress: http://test.host/api/dfc/Addresses/40000 , dfc-b:hasPhoneNumber: http://test.host/api/dfc/PhoneNumbers/444000200 , dfc-b:email: hello@example.org , dfc-b:websitePage: https://test.host/ , dfc-b:hasSocialMedia: http://test.host/api/dfc/Enterprises/10000/SocialMedias/facebook , dfc-b:name: Fred's Farm , dfc-b:hasDescription: This is an awesome enterprise , dfc-b:VATnumber: 123 456 , dfc-b:manages: http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 , dfc-b:supplies: http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 , dfc-b:hasMainContact: http://test.host/api/dfc/Persons/10000 , dfc-b:logo: http://test.host/active-storage/url/logo.png , dfc-b:affiliates: http://test.host/api/dfc/Enterprises/60000 , }, { "@id": http://test.host/api/dfc/Addresses/40000 , "@type": dfc-b:Address , dfc-b:hasStreet: 42 Doveton Street , dfc-b:hasPostalCode: '20170' , dfc-b:hasCity: Herndon , dfc-b:hasCountry: USA , dfc-b:region: Virginia , }, { "@id": http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 , "@type": dfc-b:SuppliedProduct , dfc-b:name: Apple - 1g , dfc-b:description: Round , dfc-b:hasType: dfc-pt:non-local-vegetable , dfc-b:hasQuantity: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: dfc-m:Gram , dfc-b:value: 1.0 }, dfc-b:alcoholPercentage: 0.0 , dfc-b:lifetime: '' , dfc-b:usageOrStorageCondition: '' , dfc-b:totalTheoreticalStock: 0.0 , dfc-b:image: http://test.host/active-storage/url/logo-white.png }, { "@id": http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 , "@type": dfc-b:CatalogItem , dfc-b:references: http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 , dfc-b:sku: APP , dfc-b:stockLimitation: 5 , dfc-b:offeredThrough: http://test.host/api/dfc/Enterprises/10000/Offers/10001 }, { "@id": http://test.host/api/dfc/Enterprises/10000/SocialMedias/facebook , "@type": dfc-b:SocialMedia , dfc-b:name: facebook , dfc-b:URL: https://facebook.com/user } ] '404': description: not found 'post': summary: Create an Enterprise tags: - Enterprises responses: '201': description: created '400': description: bad request '401': description: unauthorized requestBody: content: application/json: schema: example: test_example: value: "@context": https://www.datafoodconsortium.org "@id": "#" "@type": dfc-b:Enterprise dfc-b:hasAddress: http://test.host/api/dfc/Addresses/40000 dfc-b:hasPhoneNumber: http://test.host/api/dfc/PhoneNumbers/444000200 dfc-b:email: hello@example.org dfc-b:websitePage: https://test.host/ dfc-b:hasSocialMedia: "#SocialMedias/facebook" dfc-b:name: Fred's Farm dfc-b:hasDescription: This is an awesome enterprise dfc-b:VATnumber: 123 456 dfc-b:manages: "#/CatalogItems/10001" dfc-b:supplies: "#/SuppliedProducts/10001" dfc-b:hasMainContact: http://test.host/api/dfc/Persons/10000 dfc-b:logo: http://test.host/active-storage/url/logo.png dfc-b:affiliates: http://test.host/api/dfc/Enterprises/60000 'put': summary: Update an Enterprise parameters: [] tags: - Enterprises responses: '204': description: no content requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000 "@type": dfc-b:Enterprise dfc-b:hasAddress: http://test.host/api/dfc/Addresses/40000 dfc-b:hasPhoneNumber: http://test.host/api/dfc/PhoneNumbers/4401214000245 dfc-b:email: support@example.org dfc-b:websitePage: https://www.test.host dfc-b:hasSocialMedia: http://test.host/api/dfc/Enterprises/10000/SocialMedias/facebook dfc-b:name: Fred's New & Improved Farm dfc-b:hasDescription: This is now an even more awesome enterprise dfc-b:VATnumber: 123 456 dfc-b:manages: http://test.host/api/dfc/Enterprises/10000/CatalogItems/10001 dfc-b:supplies: http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 dfc-b:hasMainContact: http://test.host/api/dfc/Persons/10000 dfc-b:logo: http://test.host/active-storage/url/logo.png dfc-b:affiliates: http://test.host/api/dfc/Enterprises/60000 delete: summary: remove an Enterprise parameters: [] tags: - Enterprises responses: '204': description: no content '401': description: unauthorized "/api/dfc/Enterprises/{enterprise_id}/affiliatedTo": post: summary: Affilate 2 Enterprises (1 in path, 1 in requestBody) parameters: - name: enterprise_id in: path required: true schema: type: string tags: - Enterprises::affiliatedTo responses: '201': description: created '400': description: bad request '401': description: unauthorized requestBody: content: application/json: schema: example: "@id": http://test.host/api/dfc/Enterprises/10001 "/api/dfc/Enterprises/{enterprise_id}/affiliatedTo/{id}": delete: summary: Remove an Enterprise affiliatedTo link parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string tags: - Enterprises::affiliatedTo responses: '204': description: no content '401': description: unauthorized "/api/dfc/Enterprises/{enterprise_id}/Offers/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Show Offer tags: - Offers responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Offers/10001 "@type": dfc-b:Offer dfc-b:hasPrice: 19.99 dfc-b:stockLimitation: 5 dfc-b:discount: 2.95 dfc-b:offersTo: https://test.host/api/dfc/enterprises/10000/customerCategories/10005 put: summary: Update Offer parameters: [] tags: - Offers responses: '204': description: success requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Offers/10001 "@type": dfc-b:Offer dfc-b:hasPrice: 9.99 dfc-b:stockLimitation: 7 dfc-b:discount: 1.50 dfc-b:offersTo: https://test.host/api/dfc/enterprises/10000/customerCategories/10005 "/api/dfc/persons/{id}": parameters: - name: id in: path required: true schema: type: string get: summary: Show person parameters: [] tags: - Persons responses: '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Persons/10000 "@type": dfc-b:Person dfc-b:familyName: Khan dfc-b:firstName: Ali dfc-b:hasAddress: http://test.host/api/dfc/Addresses/40000 dfc-b:hasPhoneNumber: http://test.host/api/dfc/PhoneNumbers/4401214000245 dfc-b:hasEmail: ali.khan@test.host dfc-b:hasSocialMedia: "@type": dfc-b:SocialMedia dfc-b:name: twitter dfc-b:URL: https://x.com/user '404': description: not found "/api/dfc/PhoneNumbers/{id}": parameters: - name: id in: path required: true schema: type: string get: summary: Show phone number parameters: [] tags: - PhoneNumbers responses: '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/PhoneNumbers/4401214000245 "@type": dfc-b:PhoneNumber dfc-b:countryCode: 44 dfc-b:phoneNumber: 0121-400-0245 dfc-b:phoneNumberOf: http://test.host/api/dfc/Enterprises/10000 '404': description: not found "/api/dfc/Enterprises/{enterprise_id}/SocialMedias/{name}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: name in: path required: true schema: type: string get: summary: Show social media parameters: [] tags: - SocialMedias responses: '200': description: successful content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SocialMedias/facebook "@type": dfc-b:SocialMedia dfc-b:name: facebook dfc-b:URL: https://facebook.com/user '404': description: not found "/api/dfc/Enterprises/{enterprise_id}/SuppliedProducts": parameters: - name: enterprise_id in: path required: true schema: type: string get: summary: List SuppliedProducts for an Enterprise parameters: - name: before description: The cursor returned from a previous request, requesting the API return elements before that id. in: query required: false schema: type: string - name: after description: The cursor returned from a previous request, requesting the API return elements after that id. in: query required: false schema: type: string - name: first description: Return up to the first x elements in the list in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 255 default: 25 example: 25 - name: last description: Return up to the last x elements in the list in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 255 default: 25 example: 25 tags: - SuppliedProducts responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": - "@id": http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 "@type": dfc-b:SuppliedProduct dfc-b:name: Pesto - 100g dfc-b:description: Basil Pesto dfc-b:hasType: dfc-pt:processed-vegetable dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: dfc-m:Gram dfc-b:value: 100.0 dfc-b:alcoholPercentage: 0.0 dfc-b:lifetime: '12 months' dfc-b:usageOrStorageCondition: '' dfc-b:totalTheoreticalStock: 0.0 dfc-b:image: http://test.host/active-storage/url/logo-white.png dfc-b:referencedBy: http:/test.host/api/dfc/Enterprises/10000/CatalogItems/10001 dfc-b:asPlannedProductionFlow: http:/test.host/api/dfc/Enterprises/10000/asPlannedProductionFlow/101010 - "@id": http:/test.host/api/dfc/Enterprises/10000/asPlannedProductionFlow/101010 "@type": dfc-b:asPlannedProductionFlow dfc-b:quantity: 12 dfc-b:AsPlannedTransformation: http:/test.host/api/dfc/Enterprises/10000/AsPlannedTransformation/101010 - "@id": http:/test.host/api/dfc/Enterprises/10000/AsPlannedTransformation/101010 "@type": dfc-b:AsPlannedTransformation dfc-b:hasInput: http:/test.host/api/dfc/Enterprises/10000/asPlannedProductionFlow/101010 dfc-b:hasOutput: http:/test.host/api/dfc/Enterprises/10000/asPlannedConsumptionFlow/101010 dfc-b:hasTransformationType: dfc-v:combine - "@id": http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10005 "@type": dfc-b:SuppliedProduct dfc-b:name: Basil Pesto - Case dfc-b:description: Case of Basil Pesto (12 jars) dfc-b:hasType: dfc-pt:processed-vegetable dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: dfc-m:pack dfc-b:value: 12.0 dfc-b:lifetime: '12 months' dfc-b:usageOrStorageCondition: '' dfc-b:totalTheoreticalStock: 10.0 dfc-b:image: http://test.host/active-storage/url/logo-white.png dfc-b:referencedBy: http:/test.host/api/dfc/Enterprises/10000/CatalogItems/10002 dfc-b:asPlannedConsumptionFlow: http:/test.host/api/dfc/Enterprises/10000/asPlannedConsumptionFlow/101010 - "@id": http:/test.host/api/dfc/Enterprises/10000/asPlannedConsumptionFlow/101010 "@type": dfc-b:asPlannedConsumptionFlow dfc-b:quantity: 1 dfc-b:AsPlannedTransformation: http:/test.host/api/dfc/Enterprises/10000/AsPlannedTransformation/101010 '404': description: not found post: summary: Create SuppliedProduct parameters: [] tags: - SuppliedProducts responses: '400': description: bad request '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 "@type": dfc-b:SuppliedProduct dfc-b:name: Pesto - Apple (6g) dfc-b:description: A delicious heritage apple dfc-b:hasType: dfc-pt:non-local-vegetable dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: dfc-m:Gram dfc-b:value: 6.0 dfc-b:alcoholPercentage: 0.0 dfc-b:lifetime: '' dfc-b:usageOrStorageCondition: '' dfc-b:totalTheoreticalStock: 0.0 dfc-b:image: http://test.host/active-storage/url/logo-white.png requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": "#" "@type": dfc-b:SuppliedProduct dfc-b:name: Apple dfc-b:description: A delicious heritage apple dfc-b:hasType: dfc-pt:non-local-vegetable dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: dfc-m:Gram dfc-b:value: 6 dfc-b:alcoholPercentage: 0.0 dfc-b:lifetime: '' dfc-b:usageOrStorageCondition: '' dfc-b:totalTheoreticalStock: 0.0 "/api/dfc/Enterprises/{enterprise_id}/SuppliedProducts/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Show a single Supplied Product tags: - SuppliedProducts responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SuppliedProducts/10001 "@type": dfc-b:SuppliedProduct dfc-b:name: Pesto - 300g dfc-b:description: Basil Pesto dfc-b:hasType: dfc-pt:processed-vegetable dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: dfc-m:Gram dfc-b:value: 300.0 dfc-b:alcoholPercentage: 0.0 dfc-b:lifetime: '' dfc-b:usageOrStorageCondition: '' dfc-b:totalTheoreticalStock: 12.0 dfc-b:image: http://test.host/image-storage/url/basil-pesto.png '404': description: not found put: summary: Update SuppliedProduct parameters: [] tags: - SuppliedProducts responses: '401': description: unauthorized '204': description: success requestBody: content: application/json: schema: example: "@context": rdfs: http://www.w3.org/2000/01/rdf-schema# skos: http://www.w3.org/2004/02/skos/core# dfc: https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_FullModel.owl# dc: http://purl.org/dc/elements/1.1/# dfc-b: https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_BusinessOntology.owl# dfc-p: https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_ProductGlossary.owl# dfc-t: https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_TechnicalOntology.owl# dfc-m: https://github.com/datafoodconsortium/taxonomies/releases/latest/download/measures.rdf# dfc-pt: https://github.com/datafoodconsortium/taxonomies/releases/latest/download/productTypes.rdf# dfc-f: https://github.com/datafoodconsortium/taxonomies/releases/latest/download/facets.rdf# ontosec: http://www.semanticweb.org/ontologies/2008/11/OntologySecurity.owl# dfc-p:hasUnit: "@type": "@id" dfc-b:hasUnit: "@type": "@id" dfc-b:hasQuantity: "@type": "@id" dfc-p:hasType: "@type": "@id" dfc-b:hasType: "@type": "@id" dfc-b:references: "@type": "@id" dfc-b:referencedBy: "@type": "@id" dfc-b:offeres: "@type": "@id" dfc-b:supplies: "@type": "@id" dfc-b:defines: "@type": "@id" dfc-b:affiliates: "@type": "@id" dfc-b:hasCertification: "@type": "@id" dfc-b:manages: "@type": "@id" dfc-b:offeredThrough: "@type": "@id" dfc-b:hasBrand: "@type": "@id" dfc-b:hasGeographicalOrigin: "@type": "@id" dfc-b:hasClaim: "@type": "@id" dfc-b:hasAllergenDimension: "@type": "@id" dfc-b:hasNutrientDimension: "@type": "@id" dfc-b:hasPhysicalDimension: "@type": "@id" dfc:owner: "@type": "@id" dfc-t:hostedBy: "@type": "@id" dfc-t:hasPivot: "@type": "@id" dfc-t:represent: "@type": "@id" "@id": http://test.host/api/dfc/Enterprises/10001/SuppliedProducts/10001 "@type": dfc-b:SuppliedProduct dfc-b:alcoholPercentage: 0 dfc-b:description: Ali's Amazing Red Pesto - now it's red! dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: dfc-m:gram dfc-b:value: 350 dfc-b:hasType: dfc-pt:processed-vegetable dfc-b:lifetime: '' dfc-b:name: Ali's Amazing Red Pesto dfc-b:totalTheoreticalStock: 17.0 dfc-b:usageOrStorageCondition: '' dfc:owner: http://proto.datafoodconsortium.org:3000/ldp/user/64c1d30351ecb4367037a9f6 dfc-b:hasPhysicalCharacteristic: [] dfc-b:hasNutrientCharacteristic: [] dfc-b:hasAllergenCharacteristic: [] "/api/dfc/Enterprises/{enterprise_id}/Orders": parameters: - name: enterprise_id in: path required: true schema: type: string get: summary: Show all Orders for an Enterprise parameters: - name: before description: The cursor returned from a previous request, requesting the API return elements before that id. in: query required: false schema: type: string - name: after description: The cursor returned from a previous request, requesting the API return elements after that id. in: query required: false schema: type: string - name: first description: Return up to the first x elements in the list in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 255 default: 25 example: 25 - name: last description: Return up to the last x elements in the list in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 255 default: 25 example: 25 - name: orderState description: fitler on an Order State in: query required: false schema: type: string enum: - Draft - Held - Complete - Cancelled - name: fulfilmentState description: fitler on an Order's Fulfilment State in: query required: false schema: type: string enum: - Held - Unfulfilled - Fulfilled - Cancelled - name: paymentState description: fitler on an Order's Payment State in: query required: false schema: type: string enum: - Unpaid - Paid - Cancelled tags: - Orders responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@graph": [ { "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001 , "@type": dfc-b:Order , dfc-b:belongsTo: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002, dfc-b:orderNumber: "MYORDERNUM:12345" , dfc-b:hasOrderStatus: dfc-v:Draft , dfc-b:hasFulfilmentStatus: dfc-v:Held , dfc-b:hasPaymentState: dfc-v:Unpaid , dfc-b:hasPaymentMethod: { "@type": dfc-b:PaymentMethod , dfc-b:paymentMethodType: Example Card PaymentMethod , dfc-b:paymentMethodProvider: Stripe , dfc-b:hasPrice: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: GBP , dfc-b:value: £0.27 , dfc-b:VATrate: 0.00 }, }, dfc-b:discount: 1.55 , dfc-b:OrderedBy: http://test.host/api/dfc/Persons/10000 , dfc-b:soldBy: http://test.host/api/dfc/Enterprises/10050 , dfc-b:selects: { "@type": dfc-b:ShippingOption , dfc-b:optionOf: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 , dfc-b:fee: 1.50 , }, dfc-b:uses: { "@type": dfc-b:PickupOption , dfc-b:pickedUpAt: Our Fantastic Farm Gate }, dfc-b:hasPart: { "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 , "@type": dfc-b:OrderLine , dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 , dfc-b:hasQuantity: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: Packet , dfc-b:hasValue: 5.0 }, dfc-b:Price: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: GBP , dfc-b:value: 19.95 , dfc-b:VATrate: 0.0 , }, dfc-b:discount: [] } } ] post: summary: Create an Order parameters: [] tags: - Orders requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@graph": [ { "@id": "#" , "@type": dfc-b:Order , dfc-b:belongsTo: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002, dfc-b:orderNumber: "MYORDERNUM:12345" , dfc-b:hasOrderStatus: dfc-v:Draft , dfc-b:hasFulfilmentStatus: dfc-v:Held , dfc-b:hasPaymentState: dfc-v:Unpaid , dfc-b:hasPaymentMethod: { "@type": dfc-b:PaymentMethod , dfc-b:paymentMethodType: Example Card PaymentMethod , dfc-b:paymentMethodProvider: Stripe , dfc-b:hasPrice: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: GBP , dfc-b:value: £0.27 , dfc-b:VATrate: 0.00 }, }, dfc-b:discount: 1.55 , dfc-b:OrderedBy: http://test.host/api/dfc/Persons/10000 , dfc-b:soldBy: http://test.host/api/dfc/Enterprises/10050 , dfc-b:selects: { "@type": dfc-b:ShippingOption , dfc-b:optionOf: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 , dfc-b:fee: 1.50 , }, dfc-b:uses: { "@type": dfc-b:PickupOption , dfc-b:pickedUpAt: Our Fantastic Farm Gate }, dfc-b:hasPart: { "@id": "#/orderlines/10001-01" , "@type": dfc-b:OrderLine , dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 , dfc-b:hasQuantity: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: Packet , dfc-b:hasValue: 5.0 }, dfc-b:Price: { "@type": dfc-b:QuantitativeValue , dfc-b:hasUnit: GBP , dfc-b:value: 19.95 , dfc-b:VATrate: 0.0 , }, dfc-b:discount: [] } } ] responses: '400': description: bad request '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001 "@type": dfc-b:Order dfc-b:belongsTo: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 dfc-b:orderNumber: "MYORDERNUM:12345" dfc-b:hasOrderStatus: dfc-v:Draft dfc-b:hasFulfilmentStatus: dfc-v:Held dfc-b:hasPaymentState: dfc-v:Unpaid dfc-b:hasPaymentMethod: "@type": dfc-b:PaymentMethod dfc-b:paymentMethodType: Example Card PaymentMethod dfc-b:paymentMethodProvider: Stripe dfc-b:hasPrice: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: £0.27 dfc-b:VATrate: 0.00 dfc-b:discount: 1.55 dfc-b:OrderedBy: http://test.host/api/dfc/Persons/10000 dfc-b:selects: "@type": dfc-b:ShippingOption dfc-b:optionOf: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 dfc-b:fee: 1.50 dfc-b:uses: "@type": dfc-b:PickupOption dfc-b:pickedUpAt: Our Fantastic Farm Gate dfc-b:soldBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:hasPart: http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "/api/dfc/Enterprises/{enterprise_id}/Orders/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Show a single Order tags: - Orders responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001 "@type": dfc-b:Order dfc-b:belongsTo: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 dfc-b:orderNumber: "MYORDERNUM:12345" dfc-b:hasOrderStatus: dfc-v:Draft dfc-b:hasFulfilmentStatus: dfc-v:Held dfc-b:hasPaymentState: dfc-v:Unpaid dfc-b:hasPaymentMethod: "@type": dfc-b:PaymentMethod dfc-b:paymentMethodType: Example Card PaymentMethod dfc-b:paymentMethodProvider: Stripe dfc-b:hasPrice: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: £0.27 dfc-b:VATrate: 0.00 dfc-b:discount: 1.55 dfc-b:OrderedBy: http://test.host/api/dfc/Persons/10000 dfc-b:selects: "@type": dfc-b:ShippingOption dfc-b:optionOf: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 dfc-b:fee: 1.50 dfc-b:uses: "@type": dfc-b:PickupOption dfc-b:pickedUpAt: Our Fantastic Farm Gate dfc-b:soldBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:hasPart: - "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 5.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: [] '404': description: not found put: summary: Update a single Order tags: - Orders responses: '401': description: unauthorized '204': description: success requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001 "@type": dfc-b:Order dfc-b:belongsTo: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 dfc-b:orderNumber: "MYORDERNUM:12345" dfc-b:hasOrderStatus: dfc-v:Complete dfc-b:hasFulfilmentStatus: dfc-v:Held dfc-b:hasPaymentState: dfc-v:Unpaid dfc-b:hasPaymentMethod: "@type": dfc-b:PaymentMethod dfc-b:paymentMethodType: Example Card PaymentMethod dfc-b:paymentMethodProvider: Stripe dfc-b:hasPrice: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: £0.25 dfc-b:VATrate: 0.00 dfc-b:discount: 1.25 dfc-b:OrderedBy: http://test.host/api/dfc/Persons/10000 dfc-b:selects: "@type": dfc-b:ShippingOption dfc-b:optionOf: http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 dfc-b:fee: 1.50 dfc-b:uses: "@type": dfc-b:PickupOption dfc-b:pickedUpAt: Our Fantastic Farm Gate dfc-b:soldBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:hasPart: - "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 4.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: [] "/api/dfc/Enterprises/{enterprise_id}/Orders/{order_id}/orderlines": parameters: - name: enterprise_id in: path required: true schema: type: string - name: order_id in: path required: true schema: type: string get: summary: Show all Order Lines for an Order tags: - OrderLines responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:partOf: http://test.host/api/dfc/Enterprises/10000/Orders/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 5.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: 2.95 '404': description: not found post: summary: Create Order Line parameters: [] tags: - OrderLines responses: '400': description: bad request '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:partOf: http://test.host/api/dfc/Enterprises/10000/Orders/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 5.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: 2.95 requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": "#" "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:partOf: http://test.host/api/dfc/Enterprises/10000/Orders/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 5.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: 2.95 "/api/dfc/Enterprises/{enterprise_id}/Orders/{order_id}/orderlines/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: order_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Retrieve a single Order Line tags: - OrderLines responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:partOf: http://test.host/api/dfc/Enterprises/10000/Orders/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 5.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: 2.95 '404': description: not found put: summary: Update a single Order Line tags: - OrderLines responses: '401': description: unauthorized '204': description: success requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/Orders/10001/orderlines/10001-01 "@type": dfc-b:OrderLine dfc-b:concerns: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:partOf: http://test.host/api/dfc/Enterprises/10000/Orders/10001 dfc-b:hasQuantity: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: Packet dfc-b:hasValue: 5.0 dfc-b:Price: "@type": dfc-b:QuantitativeValue dfc-b:hasUnit: GBP dfc-b:value: 19.95 dfc-b:VATrate: 0.0 dfc-b:discount: 2.95 "/api/dfc/Enterprises/{enterprise_id}/SaleSessions": parameters: - name: enterprise_id in: path required: true schema: type: string get: summary: List all Sales Session for an Enterprise tags: - SaleSessions responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 "@type": dfc-b:SaleSession dfc-b:startDate: "2024-03-14T01:00:00+01:00" dfc-b:endDate: "2024-03-21T00:59:59+01:00" dfc-b:hasOption: "@type": dfc-b:ShippingOption "@id": http://test.host/api/dfc/Enterprises/10000/ShippingOptions/004 dfc-b:fee: 1.50 dfc-b:hostedAt: "@type": dfc-b:VirtualPlace dfc-b:URL: http:/test.host/store/FredsFarm/ dfc-b:lists: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:objectOf: "@type": dfc-b:Coordination dfc-b:coordinatedBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:marginPercent: 5.0 '404': description: not found post: summary: Create Sales Session parameters: [] tags: - SaleSessions responses: '400': description: bad request '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 "@type": dfc-b:SaleSession dfc-b:startDate: "2024-03-14T01:00:00+01:00" dfc-b:endDate: "2024-03-21T00:59:59+01:00" dfc-b:hasOption: "@type": dfc-b:ShippingOption "@id": http://test.host/api/dfc/Enterprises/10000/ShippingOptions/004 dfc-b:fee: 1.50 dfc-b:hostedAt: "@type": dfc-b:VirtualPlace dfc-b:URL: http:/test.host/store/FredsFarm/ dfc-b:lists: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:objectOf: "@type": dfc-b:Coordination dfc-b:coordinatedBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:marginPercent: 5.0 requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": "#" "@type": dfc-b:SaleSession dfc-b:startDate: "2024-03-14T01:00:00+01:00" dfc-b:endDate: "2024-03-21T00:59:59+01:00" dfc-b:hasOption: "@type": dfc-b:ShippingOption "@id": http://test.host/api/dfc/Enterprises/10000/ShippingOptions/004 dfc-b:fee: 1.50 dfc-b:hostedAt: "@type": dfc-b:VirtualPlace dfc-b:URL: http:/test.host/store/FredsFarm/ dfc-b:lists: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:objectOf: "@type": dfc-b:Coordination dfc-b:coordinatedBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:marginPercent: 5.0 "/api/dfc/Enterprises/{enterprise_id}/SaleSessions/{id}": parameters: - name: enterprise_id in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Retrieve a single Sales Session tags: - SaleSessions responses: '200': description: success content: application/json: examples: test_example: value: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 "@type": dfc-b:SaleSession dfc-b:startDate: "2024-03-14T01:00:00+01:00" dfc-b:endDate: "2024-03-21T00:59:59+01:00" dfc-b:hasOption: "@type": dfc-b:ShippingOption "@id": http://test.host/api/dfc/Enterprises/10000/ShippingOptions/004 dfc-b:fee: 1.50 dfc-b:hostedAt: "@type": dfc-b:VirtualPlace dfc-b:URL: http:/test.host/store/FredsFarm/ dfc-b:lists: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:objectOf: "@type": dfc-b:Coordination dfc-b:coordinatedBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:marginPercent: 5.0 '404': description: not found put: summary: Update a sinlge Sales Session tags: - SaleSessions responses: '401': description: unauthorized '204': description: success requestBody: content: application/json: schema: example: "@context": https://www.datafoodconsortium.org "@id": http://test.host/api/dfc/Enterprises/10000/SaleSessions/10002 "@type": dfc-b:SaleSession dfc-b:startDate: "2024-03-14T01:00:00+01:00" dfc-b:endDate: "2024-03-18T08:47:15+01:00" dfc-b:hasOption: "@type": dfc-b:ShippingOption "@id": http://test.host/api/dfc/Enterprises/10000/ShippingOptions/004 dfc-b:fee: 1.50 dfc-b:hostedAt: "@type": dfc-b:VirtualPlace dfc-b:URL: http:/test.host/store/FredsFarm/ dfc-b:lists: http://test.host/api/dfc/Enterprises/10000/Offers/10001 dfc-b:objectOf: "@type": dfc-b:Coordination dfc-b:coordinatedBy: http://test.host/api/dfc/Enterprises/10000 dfc-b:marginPercent: 5.0 servers: - url: "/"