GenuineAIGenuineAI
For usersFor developers
  • Overview
  • Guides
  • How-to
  • API reference
Documentation
  • Quickstart
  • Authentication
  • Errors
  • Rate limits
  • API reference
Platform
  • Platform overview
  • Solutions
  • Pricing
  • Sign in
Company
  • Status
  • Trust Center
  • Contact
  • Terms of Service
  • Privacy Policy

© 2026 GenuineAI Ventures LLC

support@genuinehq.com
Overview
Core
Media library
AI
Documents
Knowledge
    Knowledge bases
    Knowledge base records
    Knowledge base schemas
    Objects
    Object taxonomies
    Object schemas
    Object lifecycle flows
    Object sources
      List object sourcesgetCreate an object sourcepostGet an object sourcegetDelete an object sourcedeleteUpdate an object sourcepatchDraft a schema from sourcepostStart a full loadpostList runsgetGet a rungetCancel a runpostResume a runpostRetry failed recordspostPull changes nowpostTest a source connectionpostTest unsaved settingspost
Creative
Website & content
Automation
Customer channels
Administration
Schemas
GenuineAI API
GenuineAI API

Object sources

The systems that own the product data records are pulled from, with the mapping onto object types and the runs that loaded or refreshed the catalog from them.


List object sources

GET
https://api.genuineai.app/api/v1
/object-sources

Beta — this operation may change on 30 days notice. See versioning.

The upstream systems this workspace pulls records from. Secrets inside src_config come back masked.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

List object sources › query Parameters

cursor
​string · maxLength: 512 · pattern: ^[A-Za-z0-9_-]+$
limit
​integer
offset
​integer · min: 0
sort
​string · minLength: 1 · maxLength: 64 · pattern: ^-?[a-z0-9_]+$
src_active
​boolean
src_id
​string · uuid
src_name
​string
src_provider
​string

List object sources › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List object sources › Responses

Success

​ObjectSource[] · required
has_more
​boolean · required

Whether more rows exist past this page.

next_cursor
​string | null · required

Pass back as cursor for the next page. Null on the last page.

GET/object-sources
curl https://api.genuineai.app/api/v1/object-sources \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "data": [ { "src_id": "00000000-0000-0000-0000-000000000000", "src_active": true, "src_created": "2024-08-25T15:00:00Z", "src_updated": "2024-08-25T15:00:00Z", "src_created_by": "src_created_by", "src_name": "src_name", "src_provider": "src_provider", "src_config": {}, "src_state": "src_state", "src_metadata": {} } ], "has_more": true, "next_cursor": "next_cursor" }
json
application/json

Create an object source

POST
https://api.genuineai.app/api/v1
/object-sources

Beta — this operation may change on 30 days notice. See versioning.

Registers a connection to the system that owns the product data. src_config carries baseUrl, auth (basic or OAuth client credentials), context, workspace, the roots to walk, classifications to mirror, the types mapping onto object types, an optional eventQueue and a schedule. Enabling the schedule provisions the delta job.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Create an object source › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Create an object source › Request Body

src_name
​string · minLength: 1 · maxLength: 200 · required
src_config
​object · required
src_provider
​string · enum
Enum values:
step
src_metadata
​object

Create an object source › Responses

Success

A connection to an upstream system records are pulled from, with the mapping that turns its data into objects. Secrets in `src_config` read back masked.
ObjectSource
src_id
​string · uuid
src_active
​boolean
src_created
​string · date-time
src_updated
​string · date-time
src_created_by
​string
src_name
​string
src_provider
​string
src_config
​object
src_state
​string
src_metadata
​object
POST/object-sources
curl https://api.genuineai.app/api/v1/object-sources \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "src_name": "src_name", "src_provider": "step", "src_config": {}, "src_metadata": {} }'
Example Request Body
{ "src_name": "src_name", "src_provider": "step", "src_config": {}, "src_metadata": {} }
json
Example Responses
{ "src_id": "00000000-0000-0000-0000-000000000000", "src_active": true, "src_created": "2024-08-25T15:00:00Z", "src_updated": "2024-08-25T15:00:00Z", "src_created_by": "src_created_by", "src_name": "src_name", "src_provider": "src_provider", "src_config": {}, "src_state": "src_state", "src_metadata": {} }
json
application/json

Get an object source

GET
https://api.genuineai.app/api/v1
/object-sources/{id}

Beta — this operation may change on 30 days notice. See versioning.

Returns one source with its connection, scope and mapping. Secrets are masked; send the mask back unchanged to keep a stored value.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Get an object source › path Parameters

id
​string · uuid · required

Get an object source › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Get an object source › Responses

Success

A connection to an upstream system records are pulled from, with the mapping that turns its data into objects. Secrets in `src_config` read back masked.
ObjectSource
src_id
​string · uuid
src_active
​boolean
src_created
​string · date-time
src_updated
​string · date-time
src_created_by
​string
src_name
​string
src_provider
​string
src_config
​object
src_state
​string
src_metadata
​object
GET/object-sources/{id}
curl https://api.genuineai.app/api/v1/object-sources/:id \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "src_id": "00000000-0000-0000-0000-000000000000", "src_active": true, "src_created": "2024-08-25T15:00:00Z", "src_updated": "2024-08-25T15:00:00Z", "src_created_by": "src_created_by", "src_name": "src_name", "src_provider": "src_provider", "src_config": {}, "src_state": "src_state", "src_metadata": {} }
json
application/json

Delete an object source

DELETE
https://api.genuineai.app/api/v1
/object-sources/{id}

Beta — this operation may change on 30 days notice. See versioning.

Deactivates the source, cancels a run in progress and pauses its schedule. Records already pulled stay where they are.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Delete an object source › path Parameters

id
​string · uuid · required

Delete an object source › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Delete an object source › Responses

Success

No data returned
DELETE/object-sources/{id}
curl https://api.genuineai.app/api/v1/object-sources/:id \ --request DELETE \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
No example specified for this content type

Update an object source

PATCH
https://api.genuineai.app/api/v1
/object-sources/{id}

Beta — this operation may change on 30 days notice. See versioning.

Applies the fields present. A src_config replaces the stored one whole, with masked secrets restored from what is stored. The schedule follows the new config.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Update an object source › path Parameters

id
​string · uuid · required

Update an object source › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Update an object source › Request Body

src_provider
​string · required
src_name
​string · minLength: 1 · maxLength: 200
src_config
​object
src_metadata
​object

Update an object source › Responses

Success

A connection to an upstream system records are pulled from, with the mapping that turns its data into objects. Secrets in `src_config` read back masked.
ObjectSource
src_id
​string · uuid
src_active
​boolean
src_created
​string · date-time
src_updated
​string · date-time
src_created_by
​string
src_name
​string
src_provider
​string
src_config
​object
src_state
​string
src_metadata
​object
PATCH/object-sources/{id}
curl https://api.genuineai.app/api/v1/object-sources/:id \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "src_name": "src_name", "src_config": {}, "src_metadata": {}, "src_provider": "src_provider" }'
Example Request Body
{ "src_name": "src_name", "src_config": {}, "src_metadata": {}, "src_provider": "src_provider" }
json
Example Responses
{ "src_id": "00000000-0000-0000-0000-000000000000", "src_active": true, "src_created": "2024-08-25T15:00:00Z", "src_updated": "2024-08-25T15:00:00Z", "src_created_by": "src_created_by", "src_name": "src_name", "src_provider": "src_provider", "src_config": {}, "src_state": "src_state", "src_metadata": {} }
json
application/json

Draft a schema from source

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/discover-schema

Beta — this operation may change on 30 days notice. See versioning.

Reads a sample record of step_type (sample_id from the connection test, otherwise the first one found under the configured roots), reads the definitions of the attributes it carries, and returns object-schema fields plus the field mapping to review. Nothing is saved.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Draft a schema from source › path Parameters

id
​string · uuid · required

Draft a schema from source › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Draft a schema from source › Request Body

step_type
​string · minLength: 1 · maxLength: 200 · required
sample_id
​string · minLength: 1 · maxLength: 200
src_config
​object

Draft a schema from source › Responses

Success

stepType
​string
sampleId
​string
sampleName
​string | null
​object[]
​object[]
​object
POST/object-sources/{id}/discover-schema
curl https://api.genuineai.app/api/v1/object-sources/:id/discover-schema \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "step_type": "step_type", "sample_id": "sample_id", "src_config": {} }'
Example Request Body
{ "step_type": "step_type", "sample_id": "sample_id", "src_config": {} }
json
Example Responses
{ "stepType": "stepType", "sampleId": "sampleId", "sampleName": "sampleName", "attributes": [ {} ], "fields": [ {} ], "mapping": { "key": "string" } }
json
application/json

Start a full load

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/full-load

Beta — this operation may change on 30 days notice. See versioning.

Walks every configured root and writes what it finds. Answers 202 with the run; follow it under /object-sources/{id}/jobs. force rewrites records whose content did not change. Refused while another run is active, and refused outright when no type and no scheme is mapped.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Start a full load › path Parameters

id
​string · uuid · required

Start a full load › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Start a full load › Request Body optional

force
​boolean

Start a full load › Responses

Success

One run against a source: a full load, a scheduled delta or a retry of an earlier run's failures, with its counts and the records it could not settle.
ObjectSyncJob
osj_id
​string · uuid
osj_source
​string
osj_kind
​string
osj_trigger
​string
osj_status
​string
osj_created
​string · date-time
osj_updated
​string · date-time
osj_started
​string
osj_finished
​string
osj_created_by
​string
osj_options
​string
osj_total
​string
osj_done
​string
osj_failed
​string
osj_result
​string
osj_failures
​string
osj_error
​string
osj_cancel
​string
osj_stalled
​boolean

Running, but its worker has stopped reporting in. Resume it.

POST/object-sources/{id}/full-load
curl https://api.genuineai.app/api/v1/object-sources/:id/full-load \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "force": true }'
Example Request Body
{ "force": true }
json
Example Responses
{ "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true }
json
application/json

List runs

GET
https://api.genuineai.app/api/v1
/object-sources/{id}/jobs

Beta — this operation may change on 30 days notice. See versioning.

Every recent run against the source, newest first, with counts and the records each could not settle.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

List runs › path Parameters

id
​string · uuid · required

List runs › query Parameters

cursor
​string · maxLength: 512 · pattern: ^[A-Za-z0-9_-]+$
limit
​integer
offset
​integer · min: 0
osj_id
​string · uuid
osj_kind
​string
osj_status
​string
osj_trigger
​string
sort
​string · minLength: 1 · maxLength: 64 · pattern: ^-?[a-z0-9_]+$

List runs › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List runs › Responses

Success

​ObjectSyncJob[] · required
has_more
​boolean · required

Whether more rows exist past this page.

next_cursor
​string | null · required

Pass back as cursor for the next page. Null on the last page.

GET/object-sources/{id}/jobs
curl https://api.genuineai.app/api/v1/object-sources/:id/jobs \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "data": [ { "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true } ], "has_more": true, "next_cursor": "next_cursor" }
json
application/json

Get a run

GET
https://api.genuineai.app/api/v1
/object-sources/{id}/jobs/{job_id}

Beta — this operation may change on 30 days notice. See versioning.

One run with its progress. osj_stalled marks a run whose worker went away; resume it.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Get a run › path Parameters

id
​string · uuid · required
job_id
​string · uuid · required

Get a run › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Get a run › Responses

Success

One run against a source: a full load, a scheduled delta or a retry of an earlier run's failures, with its counts and the records it could not settle.
ObjectSyncJob
osj_id
​string · uuid
osj_source
​string
osj_kind
​string
osj_trigger
​string
osj_status
​string
osj_created
​string · date-time
osj_updated
​string · date-time
osj_started
​string
osj_finished
​string
osj_created_by
​string
osj_options
​string
osj_total
​string
osj_done
​string
osj_failed
​string
osj_result
​string
osj_failures
​string
osj_error
​string
osj_cancel
​string
osj_stalled
​boolean

Running, but its worker has stopped reporting in. Resume it.

GET/object-sources/{id}/jobs/{job_id}
curl https://api.genuineai.app/api/v1/object-sources/:id/jobs/:job_id \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true }
json
application/json

Cancel a run

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/jobs/{job_id}/cancel

Beta — this operation may change on 30 days notice. See versioning.

Stops the run at its next checkpoint. Everything applied so far stays.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Cancel a run › path Parameters

id
​string · uuid · required
job_id
​string · uuid · required

Cancel a run › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Cancel a run › Responses

Success

One run against a source: a full load, a scheduled delta or a retry of an earlier run's failures, with its counts and the records it could not settle.
ObjectSyncJob
osj_id
​string · uuid
osj_source
​string
osj_kind
​string
osj_trigger
​string
osj_status
​string
osj_created
​string · date-time
osj_updated
​string · date-time
osj_started
​string
osj_finished
​string
osj_created_by
​string
osj_options
​string
osj_total
​string
osj_done
​string
osj_failed
​string
osj_result
​string
osj_failures
​string
osj_error
​string
osj_cancel
​string
osj_stalled
​boolean

Running, but its worker has stopped reporting in. Resume it.

POST/object-sources/{id}/jobs/{job_id}/cancel
curl https://api.genuineai.app/api/v1/object-sources/:id/jobs/:job_id/cancel \ --request POST \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true }
json
application/json

Resume a run

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/jobs/{job_id}/resume

Beta — this operation may change on 30 days notice. See versioning.

Puts a stalled or failed run back in the queue from its last checkpoint.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Resume a run › path Parameters

id
​string · uuid · required
job_id
​string · uuid · required

Resume a run › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Resume a run › Responses

Success

One run against a source: a full load, a scheduled delta or a retry of an earlier run's failures, with its counts and the records it could not settle.
ObjectSyncJob
osj_id
​string · uuid
osj_source
​string
osj_kind
​string
osj_trigger
​string
osj_status
​string
osj_created
​string · date-time
osj_updated
​string · date-time
osj_started
​string
osj_finished
​string
osj_created_by
​string
osj_options
​string
osj_total
​string
osj_done
​string
osj_failed
​string
osj_result
​string
osj_failures
​string
osj_error
​string
osj_cancel
​string
osj_stalled
​boolean

Running, but its worker has stopped reporting in. Resume it.

POST/object-sources/{id}/jobs/{job_id}/resume
curl https://api.genuineai.app/api/v1/object-sources/:id/jobs/:job_id/resume \ --request POST \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true }
json
application/json

Retry failed records

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/jobs/{job_id}/retry-failed

Beta — this operation may change on 30 days notice. See versioning.

Starts a new run over exactly the records this one could not settle.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Retry failed records › path Parameters

id
​string · uuid · required
job_id
​string · uuid · required

Retry failed records › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Retry failed records › Responses

Success

One run against a source: a full load, a scheduled delta or a retry of an earlier run's failures, with its counts and the records it could not settle.
ObjectSyncJob
osj_id
​string · uuid
osj_source
​string
osj_kind
​string
osj_trigger
​string
osj_status
​string
osj_created
​string · date-time
osj_updated
​string · date-time
osj_started
​string
osj_finished
​string
osj_created_by
​string
osj_options
​string
osj_total
​string
osj_done
​string
osj_failed
​string
osj_result
​string
osj_failures
​string
osj_error
​string
osj_cancel
​string
osj_stalled
​boolean

Running, but its worker has stopped reporting in. Resume it.

POST/object-sources/{id}/jobs/{job_id}/retry-failed
curl https://api.genuineai.app/api/v1/object-sources/:id/jobs/:job_id/retry-failed \ --request POST \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true }
json
application/json

Pull changes now

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/sync-now

Beta — this operation may change on 30 days notice. See versioning.

Reads the event queue once, outside the schedule. Answers 202 with the run. Refused when the source has no event queue or another run is active.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Pull changes now › path Parameters

id
​string · uuid · required

Pull changes now › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Pull changes now › Responses

Success

One run against a source: a full load, a scheduled delta or a retry of an earlier run's failures, with its counts and the records it could not settle.
ObjectSyncJob
osj_id
​string · uuid
osj_source
​string
osj_kind
​string
osj_trigger
​string
osj_status
​string
osj_created
​string · date-time
osj_updated
​string · date-time
osj_started
​string
osj_finished
​string
osj_created_by
​string
osj_options
​string
osj_total
​string
osj_done
​string
osj_failed
​string
osj_result
​string
osj_failures
​string
osj_error
​string
osj_cancel
​string
osj_stalled
​boolean

Running, but its worker has stopped reporting in. Resume it.

POST/object-sources/{id}/sync-now
curl https://api.genuineai.app/api/v1/object-sources/:id/sync-now \ --request POST \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "osj_id": "00000000-0000-0000-0000-000000000000", "osj_source": "osj_source", "osj_kind": "osj_kind", "osj_trigger": "osj_trigger", "osj_status": "osj_status", "osj_created": "2024-08-25T15:00:00Z", "osj_updated": "2024-08-25T15:00:00Z", "osj_started": "osj_started", "osj_finished": "osj_finished", "osj_created_by": "osj_created_by", "osj_options": "osj_options", "osj_total": "osj_total", "osj_done": "osj_done", "osj_failed": "osj_failed", "osj_result": "osj_result", "osj_failures": "osj_failures", "osj_error": "osj_error", "osj_cancel": "osj_cancel", "osj_stalled": true }
json
application/json

Test a source connection

POST
https://api.genuineai.app/api/v1
/object-sources/{id}/test-connection

Beta — this operation may change on 30 days notice. See versioning.

Signs in to the source, reads the first root, asks the event queue for its status, and reports the address the source saw the call come from. Runs from the service whose address is allow-listed. Send src_config to test settings that are not saved yet.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Test a source connection › path Parameters

id
​string · uuid · required

Test a source connection › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Test a source connection › Request Body optional

src_config
​object

Test a source connection › Responses

Success

ok
​boolean
​object[]
POST/object-sources/{id}/test-connection
curl https://api.genuineai.app/api/v1/object-sources/:id/test-connection \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "src_config": {} }'
Example Request Body
{ "src_config": {} }
json
Example Responses
{ "ok": true, "checks": [ { "name": "name", "ok": true, "detail": "detail", "status": 0 } ] }
json
application/json

Test unsaved settings

POST
https://api.genuineai.app/api/v1
/object-sources/test-connection

Beta — this operation may change on 30 days notice. See versioning.

The same checks as the per-source test, for a connection that has not been saved yet. src_config is required.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Test unsaved settings › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Test unsaved settings › Request Body optional

src_config
​object

Test unsaved settings › Responses

Success

ok
​boolean
​object[]
POST/object-sources/test-connection
curl https://api.genuineai.app/api/v1/object-sources/test-connection \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "src_config": {} }'
Example Request Body
{ "src_config": {} }
json
Example Responses
{ "ok": true, "checks": [ { "name": "name", "ok": true, "detail": "detail", "status": 0 } ] }
json
application/json

Object lifecycle flowsDesigns