CONNECT API Reference
CONNECT API GraphQL Reference
Contact
CONNECT API Support
development@connect.gp-joule.de
License
No-license
API Endpoints
Production:
https://url.test/graphql
Authentication
To authenticate yourself to the API, you will receive an API key from us. This API must then be included in the header as x-api-key
for each query.
curl --location --request POST '<api-url>/graphql' \
--header 'x-api-key: XXXXXXXXXXXXXXXXXXXXXXXXXX'
--header 'Content-Type: application/json' \
--data-raw '{"query":"query getChargepoints($count: Int, $page: Int) {\r\n getChargepoints(count: 100, page: 0) {\r\n chargepoints {\r\n uuid\r\n publicName\r\n connectorsTotal\r\n connectorsFree\r\n connectorsOccupied\r\n connectorsUnavailable\r\n connectors {\r\n uuid\r\n name\r\n status {\r\n status\r\n updatedAt\r\n }\r\n evse\r\n type\r\n }\r\n }\r\n nextPage\r\n count\r\n total\r\n }\r\n}","variables":{}}'
Queries
The schema allows the following Querries
getCard
Card!
Name | Description |
---|---|
tagId -
String!
|
Unique identifier of a charge card/authentication medium |
Example
Query
query getCard($tagId: String!) {
getCard(tagId: $tagId) {
active
billingContact
cardType
contact
name
rate
tagId
validFrom
}
}
Variables
{"tagId": "xyz789"}
Response
{
"data": {
"getCard": {
"active": false,
"billingContact": ID,
"cardType": 987,
"contact": ID,
"name": "abc123",
"rate": "xyz789",
"tagId": "xyz789",
"validFrom": "2021-07-06T16:01:41.120Z"
}
}
}
getCards
[Card]!
Name | Description |
---|---|
contactId -
String!
|
Unique identifier of a contact |
active -
Boolean
|
Return active cards only |
offset -
Int
|
Defines the starting point of the pagination |
limit -
Int
|
Defines the number of returned elements |
Example
Query
query getCards($contactId: String!, $active: Boolean, $offset: Int, $limit: Int) {
getCards(contactId: $contactId, active: $active, offset: $offset, limit: $limit) {
active
billingContact
cardType
contact
name
rate
tagId
validFrom
}
}
Variables
{"contactId": "abc123", "active": true, "offset": 987, "limit": 987}
Response
{
"data": {
"getCards": [
{
"active": false,
"billingContact": ID,
"cardType": 123,
"contact": ID,
"name": "xyz789",
"rate": "abc123",
"tagId": "xyz789",
"validFrom": "2021-07-06T16:01:41.120Z"
}
]
}
}
getChargepoint
Chargepoint!
Name | Description |
---|---|
id -
ID
|
Chargepoint ID |
evse -
String
|
The EVSE ID defines the unique identifier, a number and letter code of a QR code, of a charging point. |
Example
Query
query getChargepoint($id: ID, $evse: String) {
getChargepoint(id: $id, evse: $evse) {
connectors {
...ConnectorFragment
}
connectorsFree
connectorsOccupied
connectorsTotal
connectorsUnavailable
createdAt
id
location {
...LocationFragment
}
name
publicName
updatedAt
}
}
Variables
{
"id": ID,
"evse": "DE*CON*E1000229"
}
Response
{
"data": {
"getChargepoint": {
"connectors": [Connector],
"connectorsFree": 123,
"connectorsOccupied": 123,
"connectorsTotal": 987,
"connectorsUnavailable": 123,
"createdAt": DateTime,
"id": ID,
"location": Location,
"name": "xyz789",
"publicName": "abc123",
"updatedAt": DateTime
}
}
}
getChargepoints
PaginatedChargepoints!
Name | Description |
---|---|
offset -
Int
|
Defines the starting point of the pagination |
limit -
Int
|
Defines the number of returned elements |
Example
Query
query getChargepoints($offset: Int, $limit: Int) {
getChargepoints(offset: $offset, limit: $limit) {
chargepoints {
...ChargepointFragment
}
count
}
}
Variables
{"offset": 987, "limit": 123}
Response
{
"data": {
"getChargepoints": {
"chargepoints": [Chargepoint],
"count": 987
}
}
}
getChargingSession
Example
Query
query getChargingSession($id: ID!) {
getChargingSession(id: $id) {
cardId
connector {
...SessionConnectorFragment
}
costs
costsNet
currency
duration
endTime
id
meterEnd
meterStart
meterTotal
startTime
status
tariff
taxAmount
}
}
Variables
{"id": ID}
Response
{
"data": {
"getChargingSession": {
"cardId": "abc123",
"connector": SessionConnector,
"costs": 5.11,
"costsNet": 4.29,
"currency": "EUR",
"duration": 5400,
"endTime": "2021-01-28T13:42:00.420Z",
"id": ID,
"meterEnd": 56000,
"meterStart": 69100,
"meterTotal": 13100,
"startTime": "2021-01-28T12:12:00.420Z",
"status": SessionStatus,
"tariff": "xyz789",
"taxAmount": 0.82
}
}
}
getChargingSessions
[Session]!
Name | Description |
---|---|
contactId -
String!
|
Unique identifier of a contact |
tagId -
String
|
Unique identifier of a charge card/authentication medium |
active -
Boolean
|
Return active sessions only |
offset -
Int
|
Defines the starting point of the pagination |
limit -
Int
|
Defines the number of returned elements |
Example
Query
query getChargingSessions($contactId: String!, $tagId: String, $active: Boolean, $offset: Int, $limit: Int) {
getChargingSessions(contactId: $contactId, tagId: $tagId, active: $active, offset: $offset, limit: $limit) {
cardId
connector {
...SessionConnectorFragment
}
costs
costsNet
currency
duration
endTime
id
meterEnd
meterStart
meterTotal
startTime
status
tariff
taxAmount
}
}
Variables
{
"contactId": "abc123",
"tagId": "abc123",
"active": false,
"offset": 987,
"limit": 123
}
Response
{
"data": {
"getChargingSessions": [
{
"cardId": "abc123",
"connector": SessionConnector,
"costs": 5.11,
"costsNet": 4.29,
"currency": "EUR",
"duration": 5400,
"endTime": "2021-01-28T13:42:00.420Z",
"id": ID,
"meterEnd": 56000,
"meterStart": 69100,
"meterTotal": 13100,
"startTime": "2021-01-28T12:12:00.420Z",
"status": SessionStatus,
"tariff": "abc123",
"taxAmount": 0.82
}
]
}
}
getContact
Example
Query
query getContact($id: ID!) {
getContact(id: $id) {
birthdate
customerNumber
email
fax
gender
givenName
id
isCompany
location {
...LocationFragment
}
name
phone
}
}
Variables
{"id": ID}
Response
{
"data": {
"getContact": {
"birthdate": "2021-07-06T16:01:41.120Z",
"customerNumber": "xyz789",
"email": Email,
"fax": "abc123",
"gender": "abc123",
"givenName": "xyz789",
"id": ID,
"isCompany": true,
"location": Location,
"name": "xyz789",
"phone": "xyz789"
}
}
}
getContacts
[Contact]
Name | Description |
---|---|
offset -
Int
|
Defines the starting point of the pagination |
limit -
Int
|
Defines the number of returned elements |
Example
Query
query getContacts($offset: Int, $limit: Int) {
getContacts(offset: $offset, limit: $limit) {
birthdate
customerNumber
email
fax
gender
givenName
id
isCompany
location {
...LocationFragment
}
name
phone
}
}
Variables
{"offset": 987, "limit": 987}
Response
{
"data": {
"getContacts": [
{
"birthdate": "2022-01-06T16:01:41.120Z",
"customerNumber": "xyz789",
"email": Email,
"fax": "xyz789",
"gender": "xyz789",
"givenName": "xyz789",
"id": ID,
"isCompany": true,
"location": Location,
"name": "abc123",
"phone": "xyz789"
}
]
}
}
getPrice
PriceInfo
Name | Description |
---|---|
chargepoint -
ID!
|
Unique identifier of a chargepoint |
tagId -
String
|
Unique identifier of a charge card/authentication medium |
Example
Query
query getPrice($chargepoint: ID!, $tagId: String) {
getPrice(chargepoint: $chargepoint, tagId: $tagId) {
currency
name
price
}
}
Variables
{"chargepoint": ID, "tagId": "abc123"}
Response
{
"data": {
"getPrice": {"currency": "abc123", "name": "abc123", "price": 123.45}
}
}
Mutations
The schema allows the following Mutations
remoteStart
Example
Query
mutation remoteStart($connectorId: String!, $tagId: String!) {
remoteStart(connectorId: $connectorId, tagId: $tagId) {
message
session
status
}
}
Variables
{"connectorId": "xyz789", "tagId": "abc123"}
Response
{
"data": {
"remoteStart": {
"message": "abc123",
"session": ID,
"status": "xyz789"
}
}
}
remoteStop
Example
Query
mutation remoteStop($session: ID!) {
remoteStop(session: $session) {
message
session
status
}
}
Variables
{"session": ID}
Response
{
"data": {
"remoteStop": {
"message": "abc123",
"session": ID,
"status": "xyz789"
}
}
}
updateCard
Card!
Name | Description |
---|---|
tagId -
String!
|
Unique identifier of a charge card/authentication medium |
name -
String
|
Name of the card user |
active -
Boolean
|
Activating or deactivating a card |
Example
Query
mutation updateCard($tagId: String!, $name: String, $active: Boolean) {
updateCard(tagId: $tagId, name: $name, active: $active) {
active
billingContact
cardType
contact
name
rate
tagId
validFrom
}
}
Variables
{"tagId": "abc123", "name": "abc123", "active": true}
Response
{
"data": {
"updateCard": {
"active": false,
"billingContact": ID,
"cardType": 123,
"contact": ID,
"name": "xyz789",
"rate": "xyz789",
"tagId": "xyz789",
"validFrom": "2022-01-06T16:01:41.120Z"
}
}
}
Types
Card
Represents a card and its properties
Field Name | Description |
---|---|
active -
Boolean
|
Indicates whether the authentication medium (the card) is active/inactive. |
billingContact -
ID
|
Shows the billing contact |
cardType -
Int
|
Type of authentication medium (card). |
contact -
ID
|
Unique identifier of a contact |
name -
String
|
Name of the card user |
rate -
String
|
Shows the traif to which the card is assigned. |
tagId -
String
|
Unique identifier of a charge card/authentication medium. |
validFrom -
Date
|
Valid from e.g.: YYYY-MM-DD |
Example
{
"active": true,
"billingContact": ID,
"cardType": 123,
"contact": ID,
"name": "abc123",
"rate": "abc123",
"tagId": "xyz789",
"validFrom": "2021-07-06T16:01:41.120Z"
}
Chargepoint
Represents all parameters of a charging station, incl. the connectors
Field Name | Description |
---|---|
connectors -
[Connector]
|
A list of the available charging connectors |
connectorsFree -
Int
|
Number of free charging connectors |
connectorsOccupied -
Int
|
Number of occupied charging connectors |
connectorsTotal -
Int
|
Total number of charging connectors available |
connectorsUnavailable -
Int
|
Number of unavailable charging connectors (e.g. due to faults). |
createdAt -
DateTime
|
Creation date of the Chargepoint |
id -
ID!
|
Unique identifier of the charging station that can be used for direct query. |
location -
Location
|
Location of the charging station |
name -
String
|
Internal name of the charging station |
publicName -
String
|
Public name of the charging station. This should be used for display in applications. |
updatedAt -
DateTime
|
Displays the last change date. |
Example
{
"connectors": [Connector],
"connectorsFree": 987,
"connectorsOccupied": 123,
"connectorsTotal": 987,
"connectorsUnavailable": 123,
"createdAt": DateTime,
"id": ID,
"location": Location,
"name": "xyz789",
"publicName": "xyz789",
"updatedAt": DateTime
}
Connector
Represents all parameters of a single charging connector.
Field Name | Description |
---|---|
evse -
String
|
The EVSE ID defines the unique identifier, a number and letter code of a QR code, of a charging point. e.g.: DE*CON*E1000229 |
id -
ID!
|
Unique identifier in the form of a id. |
name -
String
|
Name of the charging connector. |
status -
ConnectorStatus
|
The last status of a charging connector. |
type -
ConnectorType
|
The type of charging connector. |
Example
{
"evse": "DE*CON*E1000229",
"id": ID,
"name": "xyz789",
"status": ConnectorStatus,
"type": ConnectorType
}
ConnectorType
The type of charging connector
Field Name | Description |
---|---|
currentType -
String
|
Current type AC / DC |
description -
String
|
Description of the connector Type |
maxPower -
Float
|
Maximum power of the charging connector |
name -
String
|
Name of the connector Type |
Example
{
"currentType": "abc123",
"description": "abc123",
"maxPower": 987.65,
"name": "abc123"
}
Contact
The contact represents all the information of the contact.
Field Name | Description |
---|---|
birthdate -
Date
|
Represents the date of birth of a contact |
customerNumber -
String
|
Represents an individual customer number and is unique. |
email -
Email
|
E-Mail address |
fax -
String
|
Fax |
gender -
String
|
Gender of the contact for addressing in the app or messages. |
givenName -
String
|
Given name or first name of the contact |
id -
ID!
|
Unique identifier in the form of a id. |
isCompany -
Boolean
|
Indicates whether the contact is a company or a person. |
location -
Location
|
Address and place of contact |
name -
String
|
Name or surname of a contact |
phone -
String
|
Phone number |
Example
{
"birthdate": "2021-07-06T16:01:41.120Z",
"customerNumber": "abc123",
"email": Email,
"fax": "abc123",
"gender": "abc123",
"givenName": "xyz789",
"id": ID,
"isCompany": true,
"location": Location,
"name": "xyz789",
"phone": "abc123"
}
DateTime
ISO8601 date and time string in the format YYYY-MM-DDThh:mm:ss.sssZ
Example
2021-01-28T12:12:12.420Z
DefaultResponse
Standard response
Field Name | Description |
---|---|
status -
Status
|
Status |
Example
{"status": Status}
Float
The Float
scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
987.65
ID
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
9d5566fa-9ad6-4bf9-9fc8-35cc3a308be7
Int
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
PaginatedChargepoints
Represents charging station as a list
Field Name | Description |
---|---|
chargepoints -
[Chargepoint!]!
|
Represents all parameters of a charging station, incl. the connectors |
count -
Int
|
Number of chargepoints |
Example
{"chargepoints": [Chargepoint], "count": 123}
RemoteStartResponse
Response to remote start
Field Name | Description |
---|---|
message -
String
|
Info message |
session -
ID
|
Unique identifier of a loading process that can be used for direct query. |
status -
String
|
Shows the status of the charging process that has been started. |
Example
{"message": "xyz789", "session": ID, "status": "abc123"}
Session
Information about a charging process.
Field Name | Description |
---|---|
cardId -
String
|
Unique identifier of the authentication medium that used. |
connector -
SessionConnector
|
Connector which was used during this session. |
costs -
Float
|
Total costs of the charging process. |
costsNet -
Float
|
Total costs VAT exluded of the charging process. |
currency -
String
|
Currency in which the charging process was calculated. |
duration -
Int
|
Duration of the charging process in seconds [s] |
endTime -
DateTime
|
End time of the charging process |
id -
ID
|
Unique identifier of a charging process that can be used for direct query. |
meterEnd -
Int
|
Energy meter when stopping the charging process |
meterStart -
Int
|
Energy meter when starting the charging process |
meterTotal -
Int
|
Amount of energy charged in watt hours [Wh]. Difference between meterStart and meterEnd. |
startTime -
DateTime
|
Start time of the charging process |
status -
SessionStatus
|
Shows the state of a session. |
tariff -
String
|
Name of the tariff used. |
taxAmount -
Float
|
Tax (VAT) amount included in total costs |
Example
{
"cardId": "abc123",
"connector": SessionConnector,
"costs": 5.11,
"costsNet": 4.29,
"currency": "EUR",
"duration": 5400,
"endTime": "2021-01-28T13:42:00.420Z",
"id": ID,
"meterEnd": 56000,
"meterStart": 69100,
"meterTotal": 13100,
"startTime": "2021-01-28T12:12:00.420Z",
"status": SessionStatus,
"tariff": "abc123",
"taxAmount": 0.82
}
SessionConnector
Connector information
Field Name | Description |
---|---|
connectorId -
String
|
Unique identifier of a connector |
connectorType -
String
|
The type of charging connector. |
evse -
String
|
The EVSE ID defines the unique identifier, a number and letter code of a QR code, of a charging point. e.g.: DE*CON*E1000229 |
Example
{"connectorId": "xyz789", "connectorType": "abc123", "evse": "abc123"}
SessionStatus
Shows the state of a session.
Enum Value | Description |
---|---|
|
A charging process has been started and is still ongoing. |
|
A charging process has been stopped. |
Status
Status of a charging station or charging connector
Enum Value | Description |
---|---|
|
Charging stations or charging connectors is available. |
|
Charging stations or charging connectors is faulty |
|
Charging stations or charging connectors is occupied. |
|
Charging stations or charging connectors is not available.. |
|
The status of the charging station or the charging connector is unknown. |