API dokumentation

NBS Nordics API kan benyttes af udviklere til at hente og redigere information om byggebeskrivelser tilknyttet en brugerkonto.

Indhold i denne artikel:

Kom i gang

NBS Nordics API kan benyttes af udviklere til at hente og redigere information om byggebeskrivelser tilknyttet et projekt. For at bruge API'en kræver det, at man har en brugerkonto. Ved kontakt til API'en skal man desuden bruge sin API-nøgle, som man finder under konto-oplysningerne, når man er logget ind. (Klik på dit brugernavn i øverste højre hjørne -> Redigér din konto -> Vælg fanen API) API-nøglen er unik for hver enkelt bruger.

Base URL: nbsnordic.net/api/v2
NB: som skema bør https altid benyttes

Autorisation

Når der foretages et API kald skal den personlige API nøgle samtidig medsendes, for at autorisere forespørgslen. API nøglen sendes med som en custom header api-key. Eksempel:

$ curl -H "api-key: xxxxxxxxxxxxxxxx" https://nbsnordic.net/api/v2/projects

API'en returner JSON-data ved succes eller statuskode 401 + fejlbesked, hvis API nøglen ikke kunne genkendes.

Eksempel

Hvis du ønsker at hente information om alle bygningsdele ud for et projekt, kan du kalde følgende URL.

https://nbsnordic.net/api/v2/projects/[projectId]/components

HTTP kaldet kunne så se således ud:

$ curl -H "api-key: xxxxxxxxxxxxxxxx" https://nbsnordic.net/api/v2/projects/127/components

Ovenstående vil returnere:

{
  "components": [
    {
      "active": 1,
      "classificationcode": "0",
      "classificationcode_separator": ".",
      "classificationname": "",
      "classificationserial": "001",
      "company_id": 23,
      "contract": {
        "created_at": "2018-05-11 08:02:01",
        "id": 4970,
        "is_contract": 1,
        "is_default": 0,
        "is_subject": 0,
        "name": "Byggepladsentreprise",
        "project_id": 127,
        "updated_at": "2018-05-11 08:02:01"
      },
      "contract_id": 4970,
      "contract_name": "Byggepladsentreprise",
      "created_at": "2017-07-04 14:58:41",
      "deleted_at": null,
      "description": "Beskrivelse tekst",
      "doc_title": "Generisk bygningsdel",
      "document_id": 0,
      "document_names": "Dokument til udgivelse, Arbejdsbeskrivelse for afløb i jord, Test dokument auto oprettet (omdøbt)",
      "extra_fields": [
        {
          "applies_to_all_classificationcodes": 0,
          "content": "Type B",
          "created_at": "2019-06-18 21:58:22",
          "field_id": "isoleringstype",
          "field_name": "Isoleringstype",
          "revit_parameter": "",
          "updated_at": "2019-06-18 21:58:22"
        }
      ],
      "id": 418,
      "lasteditor_id": 38,
      "measure_id": 2,
      "measure_name": "m2",
      "measurement": {
        "calculation_type": "sum",
        "created_at": "-0001-11-30 00:00:00",
        "deleted_at": null,
        "description": "Total areal",
        "id": 2,
        "measurement_id": 1,
        "name": "m2",
        "updated_at": "-0001-11-30 00:00:00"
      },
      "measurement_amount": 0,
      "measurement_amount_manual": null,
      "measurement_updated_at": "2018-10-23 13:12:13",
      "name": "Generisk bygningsdel",
      "project_id": 127,
      "published_document_urls": [
        "https://nbsnordic.net/pubdocs/view/dbd757aaf9",
        "https://nbsnordic.net/pubdocs/view/55041b5121",
        "https://nbsnordic.net/pubdocs/view/2f06da8e0e"
      ],
      "revit_id": "",
      "structure": "Opbygnings beskrivelse",
      "subject": {
        "created_at": "2018-05-11 08:02:01",
        "id": 4956,
        "is_contract": 0,
        "is_default": 0,
        "is_subject": 1,
        "name": "Tag",
        "project_id": 127,
        "updated_at": "2018-05-11 08:02:01"
      },
      "subject_id": 4956,
      "subject_name": "Tag",
      "template_id": 196,
      "template_type": null,
      "tender_title": "Generisk bygningsdel",
      "tenderlist": {
        "created_at": "2019-06-03 00:25:47",
        "id": 1873,
        "number": 1,
        "project_id": 127,
        "reference": "Dør",
        "title": "Den lange dør",
        "updated_at": "2019-06-18 21:59:16"
      },
      "tenderlist_id": 1873,
      "tenderlist_name": "Den lange dør",
      "tenderlist_order": 1,
      "updated_at": "2019-06-18 21:59:16",
      "user_id": 38
    }
  ],
  "meta": {
    "server_timestamp": "2019-06-18 21:59:44"
  },
  "project": {
    "active": 1,
    "archived_at": "-0001-11-30 00:00:00",
    "classification_id": 1,
    "classificationcode_separator": ".",
    "company_id": 23,
    "created_at": "2017-07-04 14:58:17",
    "ends_at": null,
    "id": 127,
    "keynote_columns": "[navn] [linjeskift] [opmålingsregel]",
    "keynote_columns_api": "[navn] [linjeskift] [opmålingsregel]",
    "owner_city": "",
    "owner_countrycode": "",
    "owner_name": "",
    "owner_street": "",
    "owner_streetno": "",
    "owner_type": 0,
    "owner_zip": 0,
    "ownercontact_email": "",
    "ownercontact_name": "",
    "ownercontact_phone": "",
    "payment_type": null,
    "plan": "enterprise",
    "project_city": "",
    "project_countrycode": "",
    "project_description": "",
    "project_enddate": null,
    "project_form": 0,
    "project_id": "",
    "project_matrikelnr": "",
    "project_name": "Jonsvangen ejerlaug",
    "project_phase": 0,
    "project_startdate": null,
    "project_street": "",
    "project_streetno": "",
    "project_type": 0,
    "project_zip": 0,
    "projectstructure": "0",
    "stripe_id": null,
    "stripe_plan": null,
    "stripe_plan_type": "enterprise-quarterly",
    "updated_at": "2019-06-18 21:59:16",
    "use_alternative_quantities_calculation_method": null
  }
}
	

Endpoints

Herunder er en oversigt over tilgængelige api-kald.
For at isolere informationer til et enkelt element, skrives ID'et blot efter en skråstreg - f.eks. vil /projects/32 returnere information om dette enkelte projekt.

GET:

Version Endpoint Beskrivelse Filter
V1 /documents
Returnerer liste over dokumenter fra alle brugerens projekter ingen
V1 /documents/[document_id] Isoleret information om dokument Ingen
V1 /documents/[document_id]/paragraphs Returnerer liste over afsnit fra dokument Ingen
V1 /paragraphs/[paragraph_id] Returnerer isoleret information om afsnit Ingen
V1 /projects Liste over projekter Ingen
V1 /projects/[project_id] Isoleret information om projekt Ingen
V1 /projects/[project_id]/documents Returnerer liste over dokumenter for projekt Ingen
V2 /projects/[project_id]/components Returnerer bygningsdele for projekt Ingen

POST:

Version Endpoint Beskrivelse Filter
V2 /sheet Tilføje skema med en variabel mængde Sharktags.
Tilgængelige felter: 'name', 'revit_id', 'project_id', 'json_array'.
Er der allerede et skema i projektet med samme revit_id, overskrives dette.
Ingen
V2 /quantities Opdaterer mængder for bygningsdele.
Tilgængelige felter: 'project_id', 'json_array'.
Ingen
V2 /projects/[project_id]/component Indsæt en ny bygningsdel i et projekt.
Tilgængelige felter: 'name', 'structure', 'classificationcode',
'discipline_id', 'measure_id', 'active' (1 eller 0), 'description'.
Den oprettede bygningsdel vil blive returneret som JSON inkl. bygningsdel ID.
Ingen