Partner API v1 Documentation

Base URL: https://staging-indrive.solartools.uk/api/v1/partner

Authentication

All endpoints require a custom header:

X-API-KEY: {your-api-key}

Unauthorized requests return 401 with message "Unauthorized".

1. Create Folder

POST /folder/create

Creates a new survey folder for a partner. Returns folder information needed for file uploads.

Headers

Header Value Required
X-API-KEY Your API key Yes

Request Body (JSON)

Field Type Required Description
surveyor_folder string Yes The name of the surveyor folder
survey_folder string Yes The name of the survey folder

Example Request Body

{
  "surveyor_folder": "Surveys - Ash Mills",
  "survey_folder": "Neville Voss - PO178LP (1234)"
}

Successful Response (200 OK)

{
  "success": true,
  "folderPath": "https://staging-indrive.solartools.uk/shared?folder=4c165efe-8a51-45e1-929f-159d2e3396e1",
  "message": "Folder route returned successfully."
}

Example Validation Errors (422)

{
  "errors": {
    "survey_folder": ["The survey_folder field is required."]
  }
}

2. Store File(s)

POST /files/store

Uploads one or more files to a survey folder. Returns names of successfully uploaded files.

Headers

Header Value Required
X-API-KEY Your API key Yes

Request Body (multipart/form-data)

Field Type Required Description
files file(s) Yes One or multiple files (max 10MB each)
survey_folder string Yes URL of the folder to store files in (from `createFolder` response)

Example Postman form-data setup


Key           | Type | Value
--------------|------|----------------------------------------
survey_folder | Text | http://localhost:8000/shared?folder=UUID_HERE
files[]       | File | (select file from disk)
      

Successful Response (200 OK)

{
  "success": true,
  "uploaded_files": [
    "file1.pdf",
    "image2.jpg"
  ]
}

Validation Errors (422)

{
  "errors": {
    "files.0": ["The files.0 field must be a file."],
    "survey_folder": ["The survey_folder field is required."]
  }
}

Unauthorized Response (401)

{
  "message": "Unauthorized"
}