Organizations

An Organization represents a legal entity that exists in the context of a registry. An instance of the Ident organization registry is persisted in the configured PostgreSQL database and may be backed by a registry which lives on an immutable public ledger (i.e., such as the Ethereum public blockchain). Attestations, decentralized identifiers (DIDs) and verifiable credentials (VCs) can be attached to an organization. The organizations API makes it easy to verify attestations as well as broadcast organization details for registration of newly-created and updated organizations in public registries.

Access to programmatically manage resources associated with an organization is provided via REST API, to which ACL-based authorization is managed using generic permissions.

The registering user of an Organization is associated with the organization record for historical purposes and does not authorize any access to the organization.

List Organizations

Retrieve a list of organizations in the authorized scope.

List Organizations

GET https://ident.provide.services/api/v1/organizations

Returns a list of organizations in the authorized scope

Headers

Name
Type
Description

authorization

string

bearer <JWT> scoped to an Application, Organization or User

[
    {
        "id": "93b172b8-0d0f-440e-af35-43685c07b71b",
        "created_at": "2021-08-16T18:53:26.49383Z",
        "name": "LGT Testing.",
        "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
        "description": "Large Green Turtle Organization for testing",
        "metadata": {
            "hello": "world",
            "arbitrary": "input"
        }
    },
    {
        "id": "1d81b3c3-0f12-46a3-865f-431c578ffced",
        "created_at": "2021-08-11T12:59:52.348659Z",
        "name": "Youngs org",
        "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
        "description": null,
        "metadata": {
            "hello": "world",
            "arbitrary": "input"
        }
    }
]
curl -i \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/organizations
HTTP/2 200

Create Organization

Create a new organization.

Create Organization

POST https://ident.provide.services/api/v1/organizations

Creates a new Organization

Headers

Name
Type
Description

authorization

string

bearer <JWT> scoped to an Application, Organization or User

Request Body

Name
Type
Description

description

string

brief description of Organization being created

metadata

object

arbitrary data used for inclusion of additional parameters required for Organization

name

string

name of Organization to be created

user_id

string

id of user to assign as owner of Organization

{
    "id": "3021451a-5907-4c6e-ae8e-e1903da4f388",
    "created_at": "2021-08-16T21:02:35.810970266Z",
    "name": "LGT Testing 2",
    "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
    "description": "Secondary organization for testing",
    "metadata": {
        "hello": "world",
        "arbitrary": "input"
    }
}
curl -v -XPOST \
     -H 'content-type: application/json' \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/organizations --data-binary @- << EOF
{
     "name":"organization name",
     "description":"organization description"
}

Get Organization Details

Retrieve details for an organization.

Get Organization Details

GET https://ident.provide.services/api/v1/organizations/:id

Returns detailed information for a specified Organization

Path Parameters

Name
Type
Description

organization_id

string

id of target Organization

Headers

Name
Type
Description

authorization

string

bearer <JWT> scoped to an Application, Organization or User

{
    "id": "3021451a-5907-4c6e-ae8e-e1903da4f388",
    "created_at": "2021-08-16T21:02:35.81097Z",
    "name": "LGT Testing 2",
    "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
    "description": "Secondary organization for testing",
    "metadata": {
        "hello": "world",
        "arbitrary": "input"
    }
}
curl -v \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/organizations/efef1044-4958-43bc-903b-28f2bb938037

URL Parameters

Parameter

Description

id

id of the Organization

Update Organization

Update an organization.

Update Organization Details

PUT https://ident.provide.services/api/v1/organizations/:id

Updates a specified Organization

Path Parameters

Name
Type
Description

organization_id

string

id of Organization to be updated

Headers

Name
Type
Description

authorization

string

bearer <JWT> scoped to an Application, Organization or User

Request Body

Name
Type
Description

metadata

object

arbitrary data object used to include additional parameters required for the organization

user_id

string

id of user to assign as owner of Organization

description

string

brief description of Organization being updated

name

string

name of the Organization being updated

[]
curl -v -XPUT \
     -H 'content-type: application/json' \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/organizations/efef1044-4958-43bc-903b-28f2bb938037  --data-binary @- << EOF
{
     "name":"organization name",
     "description":"organization description"
}
EOF

URL Parameters

Parameter

Description

id

id of the Organization

Delete Organization

Delete an organization.

curl -XDELETE -i \
     -H 'content-type: application/json' \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/organizations/efef1044-4958-43bc-903b-28f2bb938037 \
HTTP/2 204

Last updated