PSC IDs for getting Beneficial Owners

Hi, I’m trying to use this endpoint to get the individual beneficial owner for a company:
GET https://api.company-information.service.gov.uk/company/{company_number}/persons-with-significant-control/individual-beneficial-owner/{psc_id}

Where can I get the PSC ID of the PSC for the company? I’ve tried this endpoint where I can get the PSC but i’m not sure what the PSC ID is supposed to be:
https://api.company-information.service.gov.uk/company/{{company_number}}/persons-with-significant-control

You have that information in the response from the /company/{{company_number}}/persons-with-significant-control endpoint - the PSC List Resource.

You actually get all the information you want in that response - you don’t have to separately call the individual-beneficial-owner endpoint. That doesn’t give you any more information than you have already.
To find the entries you say you want just work through the objects in the items list (in the PSC List resource). Each has a kind member - this tells you what type of entry this is. In your case you just want the ones with value individual-beneficial-owner.

That’s it. Unless you also wanted entities - in which case also look for corporate-entity-beneficial-owner, or “legal persons” (legal-person-beneficial-owner) or ones which exist but Companies House can’t tell you any details about (super-secure-beneficial-owner).

But what about the ID? Although you don’t actually need it for what you’ve asked it seems there could be a reason for wanting this - what if you wanted a PSC statement related to a PSC entry? The API documentation says you need the psc_id there too right?
Well, you can get it. Some explanation first. The Companies House API makes use of a feature of some REST APIs where instead of providing just a value (e.g. an ID) they provide the REST API link. These are normally in a links member of a resource. In the PSC List resource each entry in the items list should have a links member with a self member and possibly a statement member - from the documentation:

            "links": {
                "self": "string",
                "statement": "string"
            },

In the case of Companies House these strings are normally just the “path” part of a URL e.g. the bit after https://api.company-information.service.gov.uk. So you might see:

	"links":
	{
		"/company/OE000003/persons-with-significant-control/individual-beneficial-owner/8oIUSCjS7Tc0KuWbBz2-4tw9NRY"
	},

The last bit is the ID - we’re just unpacking a template here which is:

/company/{company_number}/persons-with-significant-control/{psc_kind}/{psc_id}

…where the PSC kind is one of the kinds we mentioned above e.g. individual-beneficial-owner etc.

However the ID is pointless by itself. If there is a statement the URL for that will appear as noted above. So you don’t need to substitute the ID into something. Also you can’t use the ID anywhere else. That’s because the psc_id is unique to a company e.g. the same entity at a different company will have a different ID. In addition even if someone is say a director and a PSC Companies House provides no link (other than matching name / DOB…) since the PSC data set is entirely separate from the Officers dataset. So really only the “links” make sense, and as a whole URL path.